Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
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 14/08/2008, 11h22   #1
Membre actif
 
Homme Florent
Consultant informatique
Inscription : mars 2006
Messages : 215
Détails du profil
Informations personnelles :
Nom : Homme Florent
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2006
Messages : 215
Points : 189
Points : 189
Par défaut requetes et jointures

Bonjour a tous. Je galère depuis quelques temps avec une requete SQL 2005...

En gros j’ai une base de sites/batiments/bureaux/postes de travail/employés ou je dois récupérer la somme des surface utilisées par chaque équipe sur un étage. Il faudrait que cette requete me retourne en gros :
Etage 01 – equipe 01 – 100m²
Etage 01 – equipe 02 – 123m²
Etage 01 – equipe 03 – 234m²
Etage 02 – equipe 01 – 34m²
Etage 02 – equipe 02 – 0m²
Etage 02 – equipe 03 – 0m²
Etc…
Donc group by sur l’étage, l’équipe avec une somme sur les surfaces/ équipe. Le problème c’est que je voudrais que ma requete me retourne meme les sommes nulles, que j’ai donc cette somme pour TOUTES les équipe et pour TOUS les étages… je capte pas comment faire !!
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
SELECT     tSite.nomSite, tBatiment.nomBat, tBureau.etage, tEmployes.sigle
FROM         tSite FULL OUTER JOIN
                      tBatiment ON tBatiment.SiteID = tSite.SiteID FULL OUTER JOIN
                      tBureau ON tBureau.BatimentID = tBatiment.BatimentID FULL OUTER JOIN
                      tPoste ON tPoste.BureauID = tBureau.BureauID FULL OUTER JOIN
                      tPoste_tEmployes ON tPoste_tEmployes.PosteID = tPoste.PosteID FULL OUTER JOIN
                      tEmployes ON tEmployes.EmployeID = tPoste_tEmployes.EmployeID
WHERE     (tEmployes.sigle IN
                          (SELECT DISTINCT sigle
                            FROM          tEmployes AS tEmployes_1
                            WHERE      (sigle IS NOT NULL)))
GROUP BY tBureau.etage, tSite.nomSite, tBatiment.nomBat, tEmployes.sigle
HAVING      (tSite.nomSite = 'TOTO') AND (tBatiment.nomBat = 'LALA')
ORDER BY tBureau.etage, tEmployes.sigle

Vous pouvez m'aider??
kazoumoulox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2008, 15h41   #2
Membre actif
 
Inscription : juillet 2008
Messages : 181
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : juillet 2008
Messages : 181
Points : 169
Points : 169
Bonjour,

Pourrais tu nous détailler la structure de toutes les tables utiles stp?
Le TOP ca serait un MPD si tu en as un sous la main!
alextoucour est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2008, 09h43   #3
Membre actif
 
Homme Florent
Consultant informatique
Inscription : mars 2006
Messages : 215
Détails du profil
Informations personnelles :
Nom : Homme Florent
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2006
Messages : 215
Points : 189
Points : 189
Bon en gros j'ai fait un tas de jointures avec des left, right... et des group by...
en gros aucun interet!
merci quand meme..
kazoumoulox est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web