Bonjour, bonjour,
Je bloque sur un problème qui me dépasse un peu.
Je veux faire un état à partir d'une table enquête donc la clé est multiple: un ID famille, un code et un flag qui est un booléen.
Dans cette table on a deux jeux de données, un avec le booléen à vrai, un autre avec le booléen à faux.
Donc, je fais une requête avec outer join de la table enquête sur elle même comme suit:
Ce qui marche bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT a.[Valeur], b.[Valeur] FROM enquete AS a LEFT JOIN (SELECT * FROM enquete WHERE enquete.flag <>-1) AS b ON (a.Code = b.Code) AND ([a].[ID Number] = [b].[ID Number]) WHERE a.flag=-1;
Maintenant, je souhaite afficher en en-tête de mon état les données de la famille (nom, enquêteur, zone géographique...) qui viennent de la table famille.
Là, j'ai eu un peu plus de mal et mon résultat est tout vilain (je vous passe l'intégralité du truc):
C'est moche, mais ça me donne le jeu de données que je veux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT a.Valeur, b.Valeur, (SELECT Famille.[ID number] FROM Famille WHERE a.[ID number] = famille.[ID number]) AS familyID, (SELECT Famille.nom FROM Famille WHERE a.[ID number] = Famille.[ID number]) AS familyName, ... (même chose pour les autres champs venant de famille ou les description nécessaire du code et de la valeur) FROM enquete AS a LEFT JOIN (SELECT * FROM enquete WHERE enquete.flag <>-1) AS b ON (a.Code = b.Code) AND ([a].[ID Number] = [b].[ID Number]) WHERE a.flag=-1;
Donc, pour ma requête, je suis satisfait.
Maintenant, je passe à mon état, et là, patatras!
Si je mets les données venant de famille en en-tête et le tableau des codes et valeurs en détail du rapport, j'ai une erreur à l'exécution:
"Clause GROUP BY multi-niveau non autorisée dans une sous-requête"
Ce que, intuitivement je comprends (peut-être).
Dans ma requête, je n'ai pas regroupé les données venant de famille dans un group by.
Mais là, j'avoue que je suis perdu.
Quelqu'un peut-il m'aider?
Merci








Répondre avec citation






Partager