Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD14]ajouter un somme dans une requête à partir d'une autre requête

4 réponses
Avatar
toto
Bonjour,

Dans une requête je désire avoir un calcul basé sur une autre requête :

Voici un exemple où justement je cherche la bonne syntaxe

select
id_client,
nom,
somme=(select sum(facture.ttc) from facture where facture.payee=faux et
facture.id_client=client.id_client)
from client

je désire avoir la somme des factures non payées par client

Une idée sur la syntaxe ?

merci

Vincent

4 réponses

Avatar
Tanguy
Bonjour,

Dans une requête je désire avoir un calcul basé sur une autre requête :

Voici un exemple où justement je cherche la bonne syntaxe

select
id_client,
nom,
somme=(select sum(facture.ttc) from facture where facture.payeeúux et
facture.id_client=client.id_client)
from client

je désire avoir la somme des factures non payées par client

Une idée sur la syntaxe ?

merci

Vincent



le cas classique du SUM() ... GROUP BY

select client.id_client, client.nom, sum(facture.ttc) as somme
FROM facture
LEFT JOIN client ON client.id_client = facture.id_client
WHERE facture.payeeúux
GROUP BY client.id_client, client.nom

--
Contact : http://tanguy.ath.cx
Avatar
toto
Le 23/03/2010 21:22, Tanguy a écrit :
Bonjour,

Dans une requête je désire avoir un calcul basé sur une autre requête :

Voici un exemple où justement je cherche la bonne syntaxe

select
id_client,
nom,
somme=(select sum(facture.ttc) from facture where facture.payeeúux
et facture.id_client=client.id_client)
from client

je désire avoir la somme des factures non payées par client

Une idée sur la syntaxe ?

merci

Vincent



le cas classique du SUM() ... GROUP BY

select client.id_client, client.nom, sum(facture.ttc) as somme
FROM facture
LEFT JOIN client ON client.id_client = facture.id_client
WHERE facture.payeeúux
GROUP BY client.id_client, client.nom




merci pour cette réponse rapide !
je ne veux pas être difficile :) , mais les clients n'ayant pas de
facture non payée (somme=0) sont-ils visibles ?
Avatar
Tanguy
Le 23/03/2010 21:22, Tanguy a écrit :
Bonjour,

Dans une requête je désire avoir un calcul basé sur une autre requête :

Voici un exemple où justement je cherche la bonne syntaxe

select
id_client,
nom,
somme=(select sum(facture.ttc) from facture where facture.payeeúux
et facture.id_client=client.id_client)
from client

je désire avoir la somme des factures non payées par client

Une idée sur la syntaxe ?

merci

Vincent



le cas classique du SUM() ... GROUP BY

select client.id_client, client.nom, sum(facture.ttc) as somme
FROM facture
LEFT JOIN client ON client.id_client = facture.id_client
WHERE facture.payeeúux
GROUP BY client.id_client, client.nom




merci pour cette réponse rapide !
je ne veux pas être difficile :) , mais les clients n'ayant pas de facture
non payée (somme=0) sont-ils visibles ?


ajoute dans ce cas a la fin :

HAVING somme > 0

ou si ca ne fonctionne pas

HAVING sum(facture.ttc) > 0


PS: j'ai l'impression d'etre en interro de cours SQL.... meme si j'ai
jamais appris le SQL pendant mes études d'informatique (iut et bts)!

--
Contact : http://tanguy.ath.cx
Avatar
Tanguy
n'ayant pas de facture non payée



j'ai mal compris ta question je crois...

Non, s'il n'y a pas d'enregistrement dans la table facture, ils
n'apparaissent pas...


si tu veux tous les clients et le total de leur achats, il faut
inverser les tables entre le FROM et le LEFT JOIN (ou mettre RIGHT
JOIN)

--
Contact : http://tanguy.ath.cx