Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/10/2011, 14h57   #1
Invité de passage
 
Homme abdo kad
Inscription : octobre 2011
Messages : 1
Détails du profil
Informations personnelles :
Nom : Homme abdo kad
Localisation : Algérie

Informations forums :
Inscription : octobre 2011
Messages : 1
Points : 0
Points : 0
Par défaut une selection de union 3 table

bonjour

j'ai construire union de 3 table f1,f2,f3 sur sql server 2005 comme suite:

Code :
1
2
3
4
5
6
7
8
9
10
11
SELECT     nf, dfact, client, mont, tva,ttc,
FROM         f1
WHERE     (dfact BETWEEN '01/01/2011' AND '01/31/2011')
UNION
SELECT     nf, dfact, client, mont, tva,ttc,
FROM         f2
WHERE     (dfact BETWEEN '01/01/2011' AND '01/31/2011')
UNION
SELECT     nf, dfact, client, mont, tva,ttc,
FROM         f3
WHERE     (dfact BETWEEN '01/01/2011' AND '01/31/2011')
le resultat : une table
le probleme :je veut construire une requête qui afficher la somme de mont
pour chaque client?

merci
kaabdr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2011, 16h20   #2
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 521
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 521
Points : 3 969
Points : 3 969
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
WITH SR AS (
	SELECT nf, dfact, client, mont, tva,ttc,
	FROM f1
	WHERE (dfact BETWEEN '01/01/2011' AND '01/31/2011')
	UNION
	SELECT nf, dfact, client, mont, tva,ttc,
	FROM f2
	WHERE (dfact BETWEEN '01/01/2011' AND '01/31/2011')
	UNION
	SELECT nf, dfact, client, mont, tva,ttc,
	FROM f3
	WHERE (dfact BETWEEN '01/01/2011' AND '01/31/2011')
)
SELECT client , sum( mont ) somme_mont
FROM SR
GROUP BY client
En ce qui concerne UNION et UNION ALL :
UNION ALL conserve l'ensemble des lignes retournées
UNION élimine les doublons.

À vous d'adapter votre requête suivant votre besoin.
__________________
les règles du forum - mode d'emploi du forum
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
(Rappel : "ça ne marche pas" n'est pas un message d'erreur)
JE NE RÉPONDS PAS aux questions techniques par message privé.
Écrire en français sur un forum est une marque minimale de respect.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/10/2011, 16h54   #3
Rédacteur/Modérateur

 
Avatar de WOLO Laurent
 
Homme Laurent WOLO
Architecte de base de données
Inscription : mars 2003
Messages : 2 696
Détails du profil
Informations personnelles :
Nom : Homme Laurent WOLO
Âge : 35
Localisation : Congo-Brazzaville

Informations professionnelles :
Activité : Architecte de base de données
Secteur : Finance

Informations forums :
Inscription : mars 2003
Messages : 2 696
Points : 3 917
Points : 3 917
Envoyer un message via Yahoo à WOLO Laurent
Et pour une version postérieur à la version 2005.
Vous avez :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT client,sum(montant) AS summont 
FROM (
SELECT     nf, dfact, client, mont, tva,ttc,
FROM         f1
WHERE     (dfact BETWEEN '01/01/2011' AND '01/31/2011')
UNION
SELECT     nf, dfact, client, mont, tva,ttc,
FROM         f2
WHERE     (dfact BETWEEN '01/01/2011' AND '01/31/2011')
UNION
SELECT     nf, dfact, client, mont, tva,ttc,
FROM         f3
WHERE     (dfact BETWEEN '01/01/2011' AND '01/31/2011') 
) SR
 
GROUP BY client
__________________

Découvrez la FAQ de MS SQL Server.
La chance accorde ses faveurs aux esprits avertis !
WOLO Laurent est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 17h51   #4
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 521
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 521
Points : 3 969
Points : 3 969
Citation:
Envoyé par WOLO Laurent Voir le message
Et pour une version postérieur à la version 2005.
version ANTÉRIEURE tu veux dire. Le with ne fonctionne pas en SQL 2k
__________________
les règles du forum - mode d'emploi du forum
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
(Rappel : "ça ne marche pas" n'est pas un message d'erreur)
JE NE RÉPONDS PAS aux questions techniques par message privé.
Écrire en français sur un forum est une marque minimale de respect.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 12h58   #5
Rédacteur/Modérateur

 
Avatar de WOLO Laurent
 
Homme Laurent WOLO
Architecte de base de données
Inscription : mars 2003
Messages : 2 696
Détails du profil
Informations personnelles :
Nom : Homme Laurent WOLO
Âge : 35
Localisation : Congo-Brazzaville

Informations professionnelles :
Activité : Architecte de base de données
Secteur : Finance

Informations forums :
Inscription : mars 2003
Messages : 2 696
Points : 3 917
Points : 3 917
Envoyer un message via Yahoo à WOLO Laurent
C'est exact, excusez-moi ma précipitation.
__________________

Découvrez la FAQ de MS SQL Server.
La chance accorde ses faveurs aux esprits avertis !
WOLO Laurent est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h19.


 
 
 
 
Partenaires

Hébergement Web