ulrish
Messages postés18Date d'inscriptionjeudi 19 novembre 2009StatutMembreDernière intervention25 septembre 2017
-
Modifié le 25 sept. 2017 à 23:02
jordane45
Messages postés37538Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 7 juin 2023
-
26 sept. 2017 à 09:18
Bonjour,
J'ai une requete SQL qui tourne a l'infinie. Je suis un peu perdue j'aimerais avoir un regard externe: je n'ai aucun message d'erreur, mais ma requete tourne depuis plus de 3 heures sans resultat
select '237'||a.msisdn
from
(select msisdn from FACT_FLYTXT_CUSTOMER_PROF where TARRIF_PLAN in ('4','75') and IS_RGS90_FLAG=1 and (sysdate - ACTI_DATE >= 30) and MAIN_BALANCE<200) a,
(
select msisdn, sum(TOTAL_DURATION_VOICE), sum(DATA_USAGE) from FACT_FLYTXT_CUSTOMER_USG where sysdate - to_date(DATE_KEY,'yyyymmdd') <=30
having sum(DATA_USAGE)*1000/1024<=5 and
(sum(TOTAL_DURATION_VOICE)/1000 <=0 OR ((sum(TOTAL_DURATION_VOICE)/1000 > 0) AND msisdn in (select msisdn from (
select max(a.DATE_KEY), a.msisdn
FROM FACT_FLYTXT_CUSTOMER_USG a, (select msisdn, max(DATE_KEY) date_key from FACT_FLYTXT_CUSTOMER_USG group by msisdn) b
where a.msisdn = b.msisdn and (to_date(b.DATE_KEY,'yyyymmdd') - to_date(a.DATE_KEY,'yyyymmdd') > 30)
group by a.msisdn)) )
)
group by msisdn) b
where a.msisdn = b.msisdn;
EDIT : Ajout des balises de code (la coloration syntaxique). Explications disponibles ici : ICI
jordane45
Messages postés37538Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 7 juin 2023341 26 sept. 2017 à 09:18
Bonjour,
1 - As tu mis des INDEX sur tes tables ?
2 - As tu testé chaque sous-select pour voir si ils fonctionnent correctement ?
3 - N'as tu pas moyen de faire autrement que d'utiliser des sous (voir des sous-sous-sous...) SELECT dans ta requête ???
4 - Tu es dans quelle SGBD ?
5 - Quelle sont les structures de tes tables et que souhaitent-tu obtenir exactement ?