2015-04-08 1 views
0

Je courais quelques ennuis légère avec la requête suivante:SQL Query Help: Sélection basée sur une autre de ne sélectionner que retourner une ligne

SELECT * FROM SaleItems WHERE SalesID = (SELECT SaleID FROM Sale WHERE TotalPrice > (SELECT AVG(TotalPrice) FROM Sale)) 

La deuxième partie de la requête:

SELECT SaleID FROM Sale WHERE TotalPrice > (SELECT AVG(TotalPrice) FROM Sale) 

retours 5 entrées. Mais, quand j'exécute la première requête, je n'obtiens qu'un seul résultat. Il ne base que le WHERE du seul résultat premier de la deuxième partie de la requête.

Comment puis-je résoudre ce problème? Je veux que la première requête retourne tout où le SalesID est des 5 SaleID retournés par la deuxième partie, pas seulement la première rangée.

+0

Est-ce pas jeter une erreur « sous-requête renvoie plus d'une des lignes »? –

Répondre

2

Utilisation IN:

SELECT * FROM SaleItems WHERE SalesID IN (SELECT SaleID FROM Sale WHERE TotalPrice > (SELECT AVG(TotalPrice) FROM Sale))