Bonjour,
J'essai de calculer la somme des montants facturés des commandes de 2007.
En clair, pour l'année 2007 j'ai des commandes. A ces commandes j'ai créer des factures, et je veux la somme de toutes ces factures.
Voici la requête que je voudrais faire :
Mais elle plante sous DB2 me disant que je peux pas faire de select dans un sum...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 select sum( select coalesce(sum(lf.MONTANT), 0) as a from LIGNE_FACTURE lf, LIGNE_COMMANDE lc where lf.ID_LIGNE_COMMANDE=lc.ID_LIGNE_COMMANDE and lc.ID_COMMANDE=c.ID_COMMANDE ) from COMMANDE c where year(c.DATE)=2007
Si j'enlève le sum, ca fonctionne bien :
mais ca me renvoie la liste des sommes des factures de chaque commande de 2007, et moi je voudrais la somme de tout ça.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 select ( select coalesce(sum(lf.MONTANT), 0) as a from LIGNE_FACTURE lf, LIGNE_COMMANDE lc where lf.ID_LIGNE_COMMANDE=lc.ID_LIGNE_COMMANDE and lc.ID_COMMANDE=c.ID_COMMANDE ) from COMMANDE c where year(c.DATE)=2007
J'ai essayé en mettant le select dans le from, mais là il ne comprend plus qu'il faut relier à la table "c" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 select sum(s.a) from COMMANDE c, ( select coalesce(sum(lf.MONTANT), 0) as a from LIGNE_FACTURE lf, LIGNE_COMMANDE lc where lf.ID_LIGNE_COMMANDE=lc.ID_LIGNE_COMMANDE and lc.ID_COMMANDE=c.ID_COMMANDE ) s where year(c.DATE)=2007Est ce que qqun aurait une idée ?SQL0204N Le nom "c.ID_COMMANDE" n'est pas défini. SQLSTATE=42704
Partager