PB Requete de calcul sous oracle - SQL/NoSQL - Programmation
MarshPosté le 14-02-2007 à 14:40:37
Salut
Je suis sous oracle et je voudrais effectuer la requetes suivante
/* Formatted on 2007/02/14 14:22 (Formatter Plus v4.8.5) */ SELECT COUNT (*) FROM (SELECT DISTINCT (zone_gaz.id_zone_gaz) AS zgid, TO_CHAR (centre.centre_code, '000'), TO_CHAR (zone_gaz.zg_code, '00'), zone_gaz.nature_gaz_id, calcul_journalier.calc_date AS datemesure, DECODE (SUM (calcul_journalier.calc_quantite), 0, SUM (calcul_journalier.calc_pcs) / (SELECT COUNT (*) FROM calcul_journalier WHERE calcul_journalier.zone_gaz_id = zgid AND calcul_journalier.calc_date > TO_DATE ('2006-01-02', 'yyyy-MM-dd') AND calcul_journalier.calc_date < TO_DATE ('2006-02-01', 'yyyy-MM-dd')), (SUM ( calcul_journalier.calc_pcs * calcul_journalier.calc_quantite ) ) / (SUM (calcul_journalier.calc_quantite)) ) FROM calcul_journalier, zone_gaz, centre WHERE calcul_journalier.zone_gaz_id = zone_gaz.id_zone_gaz AND zone_gaz.centre_id = centre.id_centre AND calcul_journalier.calc_date > TO_DATE ('2006-01-02', 'yyyy-MM-dd') AND calcul_journalier.calc_date < TO_DATE ('2006-02-01', 'yyyy-MM-dd') GROUP BY zone_gaz.id_zone_gaz, zone_gaz.zg_lbl, centre.centre_code, zone_gaz.zg_code, zone_gaz.nature_gaz_id, calcul_journalier.calc_date ORDER BY calcul_journalier.calc_date DESC)
en gros je recupere l'idzg dans le select que je veux utiliser dans mon decode (le code en rouge), le problème c'est qu'il n'arrive pas à reconnaitre idzg. Bref y a t-il un moyen de pouvoir utiliser les resultats du premier select et de les manipuler dans mon coude en rouge?
Marsh Posté le 14-02-2007 à 14:40:37
Salut
Je suis sous oracle et je voudrais effectuer la requetes suivante
/* Formatted on 2007/02/14 14:22 (Formatter Plus v4.8.5) */
SELECT COUNT (*)
FROM (SELECT DISTINCT (zone_gaz.id_zone_gaz) AS zgid,
TO_CHAR (centre.centre_code, '000'),
TO_CHAR (zone_gaz.zg_code, '00'),
zone_gaz.nature_gaz_id,
calcul_journalier.calc_date AS datemesure,
DECODE
(SUM (calcul_journalier.calc_quantite),
0, SUM (calcul_journalier.calc_pcs)
/ (SELECT COUNT (*)
FROM calcul_journalier
WHERE calcul_journalier.zone_gaz_id = zgid
AND calcul_journalier.calc_date >
TO_DATE ('2006-01-02', 'yyyy-MM-dd')
AND calcul_journalier.calc_date <
TO_DATE ('2006-02-01', 'yyyy-MM-dd')),
(SUM ( calcul_journalier.calc_pcs
* calcul_journalier.calc_quantite
)
)
/ (SUM (calcul_journalier.calc_quantite))
)
FROM calcul_journalier, zone_gaz, centre
WHERE calcul_journalier.zone_gaz_id = zone_gaz.id_zone_gaz
AND zone_gaz.centre_id = centre.id_centre
AND calcul_journalier.calc_date >
TO_DATE ('2006-01-02', 'yyyy-MM-dd')
AND calcul_journalier.calc_date <
TO_DATE ('2006-02-01', 'yyyy-MM-dd')
GROUP BY zone_gaz.id_zone_gaz,
zone_gaz.zg_lbl,
centre.centre_code,
zone_gaz.zg_code,
zone_gaz.nature_gaz_id,
calcul_journalier.calc_date
ORDER BY calcul_journalier.calc_date DESC)
en gros je recupere l'idzg dans le select que je veux utiliser dans mon decode (le code en rouge), le problème c'est qu'il n'arrive pas à reconnaitre idzg. Bref y a t-il un moyen de pouvoir utiliser les resultats du premier select et de les manipuler dans mon coude en rouge?
Merci d'avance