Union en sous requête

longplaying Messages postés 9 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.

3 réponses

OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   36
 
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à.

0
longplaying Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Merci de votre réponse, malheureusement elle ne fonctionne pas... ça me met une erreur de syntaxe avec la partie " & ' ' & " !
0
OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   36
 
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.
0
longplaying Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
En fait ce ne sont pas que des apostrophe mais des accents graves, sur le forum ils apparaissent comme des apostrophes. Lorsque je ne les mets ça me pose un problème de syntaxe encore et toujours...
Je viens de réessayer et ça me remet la même erreur, même avec les crochets ! =(
0
OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   36
 
J'ai pourtant créé des tables avec les mêmes noms et les mêmes champs. Voilà pourquoi il ne faut jamais mettre d'accent ou d'espace dans les noms des champs et des tables. Quel est le message exact de l'erreur ?
0
longplaying Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
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 !
0
OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   36
 
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.
0