Je suis en train d'écrire une requête qui doit effectuer join
(ou where
clause) selon les critères suivants:Vérification d'une sous requête pour contenir les résultats de l'autre dans T-SQL
sous-requête de la table gauche doit contenir les résultats de la sous-requête de la table de droite (les résultats doivent également être regroupés).
sql script creating tables with data
critères exacts sont les suivants:
clients Choisir qui:
Pour chaque Question.Id dans [ClientSegment] Les questionIds
de 'doit être d'au moins un (équivalent sur Tout en LINQ) ClientAnswers.AnswerId de ceux [ClientSegmentAnswers]
Comment puis-je parvenir sans utiliser pour les boucles (curseurs) dans une seule requête?
UPD
de manuscrit pour créer des tables et des données
Résultat attendu
requête qui sélectionne Bob comme ne correspondant pour les consommateurs ClientSegment avec id = 1;
J'ai éditer la question, ajouté des données d'échantillon. la requête que vous avez suggérée ne retourne pas ce qui est attendu, malheureusement –
Vous voulez dire, Voulez-vous sélectionner uniquement les clients de type 1 de segment? Il est difficile d'utiliser votre structure parce que certains des ID de réponse viennent pour les deux types de segments E.g: AnswerID - 4. Mais vous pouvez omettre le type "2" en utilisant la requête de jointure gauche. –
Non, la réponse a une clé étrangère, donc la réponse appartient à une seule question –