PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → Etats & Requêtes → Format de date oracle
Format de date oracle
Débuté par maxidoudou, 12 jan. 2009 12:04 - Aucune réponse
Posté le 12 janvier 2009 - 12:04
Bonjour, je débute avec webdev, j'ai donc voulu porté une petite appli de stats qui tourne en php depuis 8 ans sans soucis.
Je précise que j'ai l'accès natif oracle.
Il y des aberrations dans la base oracle mais je n'en suis pas propriétaire, je ne fais que des requêtes dessus.
Donc, j'ai une date en format julien qui n'est pas déclaré comme une date mais comme un numérique. Et de là vient tous mes malheurs apparemment, car si j'enlève toutes les commandes qui y font référence, ça fonctionne.
Ma requête seule fonctionne très bien, même si j'ai du batailler pour remplacer la commande extract qui est si pratique mais que webdev ne connais apparemment pas, je génère un état a partir de cette requête, mais lorsque je le lance, erreur accès natif oracle : 1004, on dirait que webdev interprète la requete alors qu'il ne devrait puisque c'est un accès natif.
Ma requête fonctionne parfaitement en SQLplus.
J'ai pensé que c'était du à la complexité de ma requete (requete en table et jointure externe), mais même une partie simple ne fonctionne pas non plus.

Voici mon sql si quelqun a une idée :

SELECT
c1.an_paie,
c1.mois_paie,
c1.nb_titu,
c2.nb_contractuel,
c3.nb_jeune,
c4.nb_chomage,
c5.mt_brut,
c6.mt_chomage,
c7.mt_charge,
c8.mt_masse
FROM
(
SELECT
to_char(TO_DATE(DAT_PAIE,'J'),'YYYY') AS an_paie,
to_char(TO_DATE(DAT_PAIE,'J'),'mm') AS mois_paie,
COUNT(DISTINCT BULPAI_H.IDF_AGENT) AS nb_titu
FROM
BULPAI_H,
AGTGRD,
EMPLOI,
AGTNAT
WHERE
BULPAI_H.COD_COLL = AGTGRD.COD_COLL
AND BULPAI_H.IDF_AGENT = AGTGRD.IDF_AGENT
AND BULPAI_H.COD_COLL = AGTNAT.COD_COLL
AND BULPAI_H.IDF_AGENT = AGTNAT.IDF_AGENT
AND BULPAI_H.COD_COLL = EMPLOI.COD_COLL
AND BULPAI_H.IDF_AGENT = EMPLOI.IDF_AGENT
AND AGTNAT.COD_GESTION IN ('0', '1')
AND BULPAI_H.COD_RUB = '901N'
AND BULPAI_H.MNT_RUB_N > 0
AND AGTGRD.COD_POSAGT NOT IN ('CH')
AND EMPLOI.NUM_EMPLOI = 1
AND EMPLOI.COD_EMPLOY = '01'
AND to_char(TO_DATE(DAT_PAIE,'J'),'YYYY')=2008
AND LAST_DAY(TO_DATE(DAT_PAIE,'J'))>= AGTGRD.DAT_DEBUT
AND TO_DATE(DAT_PAIE,'J')<=AGTGRD.DAT_FIN
AND LAST_DAY(TO_DATE(DAT_PAIE,'J'))>= EMPLOI.DAT_DEBUT
AND TO_DATE(DAT_PAIE,'J')<=EMPLOI.DAT_FIN
GROUP BY
to_char(TO_DATE(DAT_PAIE,'J'),'YYYY'),to_char(TO_DATE(DAT_PAIE,'J'),'mm')
) c1
,
(
SELECT
to_char(TO_DATE(DAT_PAIE,'J'),'YYYY') AS an_paie,
to_char(TO_DATE(DAT_PAIE,'J'),'mm') AS mois_paie,
COUNT(DISTINCT BULPAI_H.IDF_AGENT) AS nb_contractuel
FROM
BULPAI_H,
AGTGRD,
EMPLOI,
AGTNAT
WHERE
BULPAI_H.COD_COLL = AGTGRD.COD_COLL
AND BULPAI_H.IDF_AGENT = AGTGRD.IDF_AGENT
AND BULPAI_H.COD_COLL = AGTNAT.COD_COLL
AND BULPAI_H.IDF_AGENT = AGTNAT.IDF_AGENT
AND BULPAI_H.COD_COLL = EMPLOI.COD_COLL
AND BULPAI_H.IDF_AGENT = EMPLOI.IDF_AGENT
AND AGTNAT.COD_GESTION IN ('2')
AND BULPAI_H.COD_RUB = '901N'
AND BULPAI_H.MNT_RUB_N <> 0
AND AGTGRD.COD_POSAGT NOT IN ('EJ','CH')
AND EMPLOI.NUM_EMPLOI = 1
AND EMPLOI.COD_EMPLOY = '01'
AND to_char(TO_DATE(DAT_PAIE,'J'),'YYYY')=2008
AND LAST_DAY(TO_DATE(DAT_PAIE,'J'))>= AGTGRD.DAT_DEBUT
AND TO_DATE(DAT_PAIE,'J')<=AGTGRD.DAT_FIN
AND LAST_DAY(TO_DATE(DAT_PAIE,'J'))>= EMPLOI.DAT_DEBUT
AND TO_DATE(DAT_PAIE,'J')<=EMPLOI.DAT_FIN
GROUP BY
to_char(TO_DATE(DAT_PAIE,'J'),'YYYY'),to_char(TO_DATE(DAT_PAIE,'J'),'mm')
) c2
,
(
SELECT
to_char(TO_DATE(DAT_PAIE,'J'),'YYYY') AS an_paie,
to_char(TO_DATE(DAT_PAIE,'J'),'mm') AS mois_paie,
COUNT(DISTINCT BULPAI_H.IDF_AGENT) AS nb_jeune
FROM
BULPAI_H,
AGTGRD,
EMPLOI,
AGTNAT
WHERE
BULPAI_H.COD_COLL = AGTGRD.COD_COLL
AND BULPAI_H.IDF_AGENT = AGTGRD.IDF_AGENT
AND BULPAI_H.COD_COLL = AGTNAT.COD_COLL
AND BULPAI_H.IDF_AGENT = AGTNAT.IDF_AGENT
AND BULPAI_H.COD_COLL = EMPLOI.COD_COLL
AND BULPAI_H.IDF_AGENT = EMPLOI.IDF_AGENT
AND AGTNAT.COD_GESTION IN ('2')
AND BULPAI_H.COD_RUB = '901N'
AND BULPAI_H.MNT_RUB_N <> 0
AND COD_CATAGT IN ('A','C')
AND AGTGRD.COD_POSAGT IN ('EJ')
AND EMPLOI.NUM_EMPLOI = 1
AND EMPLOI.COD_EMPLOY = '01'
AND to_char(TO_DATE(DAT_PAIE,'J'),'YYYY')=2008
AND LAST_DAY(TO_DATE(DAT_PAIE,'J'))>= AGTGRD.DAT_DEBUT
AND TO_DATE(DAT_PAIE,'J')<=AGTGRD.DAT_FIN
AND LAST_DAY(TO_DATE(DAT_PAIE,'J'))>= EMPLOI.DAT_DEBUT
AND TO_DATE(DAT_PAIE,'J')<=EMPLOI.DAT_FIN
GROUP BY
to_char(TO_DATE(DAT_PAIE,'J'),'YYYY'),to_char(TO_DATE(DAT_PAIE,'J'),'mm')
) c3
,
(
SELECT
to_char(TO_DATE(DAT_PAIE,'J'),'YYYY') AS an_paie,
to_char(TO_DATE(DAT_PAIE,'J'),'mm') AS mois_paie,
COUNT(DISTINCT BULPAI_H.IDF_AGENT) AS nb_chomage
FROM
BULPAI_H,
AGTGRD,
EMPLOI,
AGTNAT
WHERE
BULPAI_H.COD_COLL = AGTGRD.COD_COLL
AND BULPAI_H.IDF_AGENT = AGTGRD.IDF_AGENT
AND BULPAI_H.COD_COLL = AGTNAT.COD_COLL
AND BULPAI_H.IDF_AGENT = AGTNAT.IDF_AGENT
AND BULPAI_H.COD_COLL = EMPLOI.COD_COLL
AND BULPAI_H.IDF_AGENT = EMPLOI.IDF_AGENT
AND BULPAI_H.COD_RUB = '901N'
AND BULPAI_H.MNT_RUB_N <> 0
AND AGTGRD.COD_POSAGT IN ('CH')
AND EMPLOI.NUM_EMPLOI = 1
AND EMPLOI.COD_EMPLOY = '01'
AND to_char(TO_DATE(DAT_PAIE,'J'),'YYYY')=2008
AND LAST_DAY(TO_DATE(DAT_PAIE,'J'))>= AGTGRD.DAT_DEBUT
AND TO_DATE(DAT_PAIE,'J')<=AGTGRD.DAT_FIN
AND LAST_DAY(TO_DATE(DAT_PAIE,'J'))>= EMPLOI.DAT_DEBUT
AND TO_DATE(DAT_PAIE,'J')<=EMPLOI.DAT_FIN
GROUP BY
to_char(TO_DATE(DAT_PAIE,'J'),'YYYY'),to_char(TO_DATE(DAT_PAIE,'J'),'mm')
) c4
,
(
SELECT
to_char(TO_DATE(DAT_PAIE,'J'),'YYYY') AS an_paie,
to_char(TO_DATE(DAT_PAIE,'J'),'mm') AS mois_paie,
SUM(BULPAI_H.MNT_RUB_N) AS mt_brut
FROM
BULPAI_H,
AGTGRD
WHERE
BULPAI_H.COD_RUB IN ('900N')
AND BULPAI_H.COD_COLL = AGTGRD.COD_COLL
AND BULPAI_H.IDF_AGENT = AGTGRD.IDF_AGENT
AND to_char(TO_DATE(DAT_PAIE,'J'),'YYYY')=2008
AND AGTGRD.DAT_FIN = TO_DATE('31-12-2099','dd-mm-YYYY')
AND BULPAI_H.IDF_AGENT IN (SELECT DISTINCT IDF_AGENT FROM EMPLOI WHERE COD_EMPLOY = '01')
GROUP BY
to_char(TO_DATE(DAT_PAIE,'J'),'YYYY'),to_char(TO_DATE(DAT_PAIE,'J'),'mm'),
BULPAI_H.COD_RUB
) c5
,
(
SELECT
to_char(TO_DATE(DAT_PAIE,'J'),'YYYY') AS an_paie,
to_char(TO_DATE(DAT_PAIE,'J'),'mm') AS mois_paie,
SUM(BULPAI_H.MNT_RUB_N) AS mt_chomage
FROM
BULPAI_H,
AGTGRD
WHERE
BULPAI_H.COD_RUB IN ('900N')
AND BULPAI_H.COD_COLL = AGTGRD.COD_COLL
AND BULPAI_H.IDF_AGENT = AGTGRD.IDF_AGENT
AND to_char(TO_DATE(DAT_PAIE,'J'),'YYYY')=2008
AND AGTGRD.DAT_FIN = TO_DATE('31-12-2099','dd-mm-YYYY')
AND AGTGRD.COD_POSAGT = 'CH'
AND BULPAI_H.IDF_AGENT IN (SELECT DISTINCT IDF_AGENT FROM EMPLOI WHERE COD_EMPLOY = '01')
GROUP BY
to_char(TO_DATE(DAT_PAIE,'J'),'YYYY'),to_char(TO_DATE(DAT_PAIE,'J'),'mm'),
BULPAI_H.COD_RUB
) c6
,
(
SELECT
to_char(TO_DATE(DAT_PAIE,'J'),'YYYY') AS an_paie,
to_char(TO_DATE(DAT_PAIE,'J'),'mm') AS mois_paie,
SUM(BULPAI_H.MNT_RUB_N) AS mt_charge
FROM
BULPAI_H
WHERE
BULPAI_H.COD_RUB IN ('908N')
AND to_char(TO_DATE(DAT_PAIE,'J'),'YYYY')=2008
AND BULPAI_H.IDF_AGENT IN (SELECT DISTINCT IDF_AGENT FROM EMPLOI WHERE COD_EMPLOY = '01')
GROUP BY
to_char(TO_DATE(DAT_PAIE,'J'),'YYYY'),to_char(TO_DATE(DAT_PAIE,'J'),'mm'),
BULPAI_H.COD_RUB
) c7
,
(
SELECT
to_char(TO_DATE(DAT_PAIE,'J'),'YYYY') AS an_paie,
to_char(TO_DATE(DAT_PAIE,'J'),'mm') AS mois_paie,
SUM(BULPAI_H.MNT_RUB_N) AS mt_masse
FROM
BULPAI_H
WHERE
BULPAI_H.COD_RUB IN ('908N','900N')
AND to_char(TO_DATE(DAT_PAIE,'J'),'YYYY')=2008
AND BULPAI_H.IDF_AGENT IN (SELECT DISTINCT IDF_AGENT FROM EMPLOI WHERE COD_EMPLOY = '01')
GROUP BY
to_char(TO_DATE(DAT_PAIE,'J'),'YYYY'),to_char(TO_DATE(DAT_PAIE,'J'),'mm')
) c8
WHERE
c1.mois_paie=c2.mois_paie(+)
AND c1.mois_paie=c3.mois_paie(+)
AND c1.mois_paie=c4.mois_paie(+)
AND c1.mois_paie=c5.mois_paie(+)
AND c1.mois_paie=c6.mois_paie(+)
AND c1.mois_paie=c7.mois_paie(+)
AND c1.mois_paie=c8.mois_paie(+)
ORDER BY
c1.an_paie,
c1.mois_paie