[Hard core SQL] Sum d'un select
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 :
Code:
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 |
Mais elle plante sous DB2 me disant que je peux pas faire de select dans un sum...
Si j'enlève le sum, ca fonctionne bien :
Code:
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 |
mais ca me renvoie la liste des sommes des factures de chaque commande de 2007, et moi je voudrais la somme de tout ça.
J'ai essayé en mettant le select dans le from, mais là il ne comprend plus qu'il faut relier à la table "c" :
Code:
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)=2007 |
Citation:
SQL0204N Le nom "c.ID_COMMANDE" n'est pas défini. SQLSTATE=42704
Est ce que qqun aurait une idée ?