ch0upette
Messages postés25Date d'inscriptionjeudi 2 novembre 2006StatutMembreDernière intervention19 février 2008
-
2 nov. 2006 à 16:44
ch0upette
Messages postés25Date d'inscriptionjeudi 2 novembre 2006StatutMembreDernière intervention19 février 2008
-
2 nov. 2006 à 18:25
Bonsoir,
Voilà : mon programme java me permet de me connecter à une interbase.
Les requêtes simples s'effectuent sans soucis.
Mais lorsque j'effectue une sous requête :
SELECT Sum(CA), Sum(POIDS), Sum(MARGE), Count(DISTINCT CMDE)
FROM
(SELECT PDSQTELIV*LICOM.PXNET AS CA, PDSQTELIV*(LICOM.PXNET-PXRVT) AS MARGE, PDSQTELIV AS POIDS, LICOM.NOCDE AS CMDE
FROM LICOM,COMMANDE
WHERE LICOM.NOCDE = COMMANDE.NOCDE
AND DATECDE>'2006-01-01'
AND DATECDE<'2006-10-01');
j'obtiens (non pas à la compilation mais lors de l'exécution) :
java.sql.SqlException:[EasySoft][Interbase]Dynamic SQL Error, SQL Error code =
-104, Token unknown - line 1, char 66, SELECT
ch0upette
Messages postés25Date d'inscriptionjeudi 2 novembre 2006StatutMembreDernière intervention19 février 2008 2 nov. 2006 à 18:25
J'ai vu en répondant et l'ai testé avant de partir du boulot. Malheureusement, interbase ne veut toujours pas accepter. Pas grave, 2nde parade, créer des vues pour stocker les sous requêtes et les supprimer une fois les données traitées.
Merci du coup de main.
A++
cs_laurent1024
Messages postés987Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention30 août 201225 2 nov. 2006 à 17:11
C'est ta requete qui est completement fausse.
On peut pas faire un from (sous requete).
moi j'esseyerais
SELECT Sum(PDSQTELIV*LICOM.PXNET) as CA Sum(PDSQTELIV*(LICOM.PXNET-PXRVT)) AS MARGE, Count(PDSQTELIV AS POIDS, LICOM.NOCDE) AS CMDE
FROM LICOM,COMMANDE
WHERE LICOM.NOCDE = COMMANDE.NOCDE
AND DATECDE>'2006-01-01'
AND DATECDE<'2006-10-01';
++
cs_laurent1024
Messages postés987Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention30 août 201225 2 nov. 2006 à 17:35
Dsl je connaissait pas cette ecriture.
Par contre dans l'exemple il y a TableReponse, que toi tu avais pas mis dans la premiere requete.
SELECT *
FROM
(
SELECT TIT_CODE, CLI_NOM, CLI_PRENOM
FROM MaTable
) TableReponse Il faudrait donc que tu esssayes
SELECT Sum(CA), Sum(POIDS), Sum(MARGE), Count(DISTINCT CMDE)
FROM
(SELECT PDSQTELIV*LICOM.PXNET AS CA, PDSQTELIV*(LICOM.PXNET-PXRVT) AS MARGE, PDSQTELIV AS POIDS, LICOM.NOCDE AS CMDE
FROM LICOM,COMMANDE
WHERE LICOM.NOCDE = COMMANDE.NOCDE
AND DATECDE>'2006-01-01'
AND DATECDE<'2006-10-01') TableReponse; pour voir si interbase reconnait cette syntaxe
++