Union en sous requête
longplaying
Messages postés
9
Statut
Membre
-
OlivrT Messages postés 323 Date d'inscription Statut Membre Dernière intervention -
OlivrT Messages postés 323 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Dans le cadre de mes cours je dois réaliser une base de données et faire des requête en SQL. J'ai un petit problème par rapport à l'une de mes requêtes :( .
Voici ma requête
SELECT 'chambre'.'numCh' , 'patient'.'numP' , 'subit'.'type' , 'pratique'.'nomM' , 'participe à'.'nomI'
FROM 'chambre'
JOIN 'patient'
ON 'chambre'.'numCh'='patient'.'numCh'
JOIN 'subit'
ON 'patient'.'numP'='subit'.'numP'
JOIN 'pratique'
ON 'subit'.'type'='pratique'.'type'
JOIN 'participe à'
ON 'subit'.'type'='participe à'.'type'
WHERE 'chambre'.'numCh'='203'
Je voudrais faire une union des colonnes 'pratique'.'nomM' et 'participe à'.'nomI' pour pouvoir faire un COUNT sur cette colonne.
Merci d'avance.
Dans le cadre de mes cours je dois réaliser une base de données et faire des requête en SQL. J'ai un petit problème par rapport à l'une de mes requêtes :( .
Voici ma requête
SELECT 'chambre'.'numCh' , 'patient'.'numP' , 'subit'.'type' , 'pratique'.'nomM' , 'participe à'.'nomI'
FROM 'chambre'
JOIN 'patient'
ON 'chambre'.'numCh'='patient'.'numCh'
JOIN 'subit'
ON 'patient'.'numP'='subit'.'numP'
JOIN 'pratique'
ON 'subit'.'type'='pratique'.'type'
JOIN 'participe à'
ON 'subit'.'type'='participe à'.'type'
WHERE 'chambre'.'numCh'='203'
Je voudrais faire une union des colonnes 'pratique'.'nomM' et 'participe à'.'nomI' pour pouvoir faire un COUNT sur cette colonne.
Merci d'avance.
3 réponses
-
SELECT 'pratique'.'nomM' & ' ' & 'participe à'.'nomI', COUNT(*)
FROM
'chambre' JOIN 'patient' ON 'chambre'.'numCh'='patient'.'numCh'
JOIN 'subit' ON 'patient'.'numP'='subit'.'numP'
JOIN 'pratique' ON 'subit'.'type'='pratique'.'type'
JOIN 'participe à' ON 'subit'.'type'='participe à'.'type'
WHERE 'chambre'.'numCh'='203'
GROUP BY 'pratique'.'nomM' & ' ' & 'participe à'.'nomI'
Voilà.
-
Je ne l'avais pas écrit mais une chose me parait étrange dans ce Select, c'est que vous mettez des apostrophes partout !? Mettez des accolades devant et derrière :
SELECT [pratique].[nomM] & ' ' & [participe à].[nomI], COUNT(*) FROM [chambre] JOIN [patient] ON [chambre].[numCh]=[patient].[numCh] JOIN [subit] ON [patient].[numP]=[subit].[numP] JOIN [pratique] ON [subit].[type]=[pratique].[type] JOIN [participe à] ON [subit].[type]=[participe à].[type] WHERE [chambre].[numCh]=203 GROUP BY [pratique].[nomM] & ' ' & [participe à].[nomI]
Je l'ai testé et cela fonctionne.-
-
-
Avec les accolades ça ne fonctionnent pas, j'ai changé mes noms de tables pour ne pas avoir d'accent et d'espace. J'ai aussi retesté votre première solution, elle fonctionne mais je devrais trouver 7 alors que ça me revois 12, en gros ça me laisse les doublons. Je suis en train de testé une nouvelle solution qui est de faire une union de deux sélections l'une concernant les nomM et l'autre concernant les nomI !
-
-
Vous ne m'aviez pas dit que vous avez des doublons.
Dans Access, une manière de les éviter, serait de sauvegarder la première requête, et vous en faites une seconde en utilisant la première en faisant à nouveau un Group By.