Intérieure de se joindre à une instruction select où l'intérieure instruction select where clause références de la sélection externe?

C'est un allégée de la requête de mon grand problème, mais l'essentiel, c'est que je suis en train de jointure interne à sélectionner l'endroit où la sélection est limitée par la sélection externe. Est-ce possible? J'obtiens une erreur à propos de plusieurs parties de l'identificateur de S. Élément et S. SerialNum sur la sélection interne.

L'essentiel est de cela, nous devons groupe par l'élément/de série, et la requête est assez grand, nous ne voulons pas revenir en arrière et de tout groupe dans l'ensemble de la requête pour ce mineur rejoindre.

SELECT S.Item, S.SerialNum, S.ReceiveDate
    FROM SALES S
    INNER JOIN (SELECT W.Item, W.SerialNum, MIN(W.SalesDate)
                    FROM WARRANTY W
                    WHERE W.Item        = S.Item    AND
                          W.SerialNum   = S.SerialNum
                    GROUP BY Item, SerialNum, SalesDate) WW
        ON S.Item = WW.Item AND WW.SerialNum
Je ne suis pas tout à fait sûr de ce que vous demandez ici.. mais à partir de l'allure de cette requête, retirez votre intérieur WHERE W.Item... clause et de l'inclure dans le ON déclaration. Les jointures internes automatiquement faire ce qu'il semble que votre WHERE clause est en train de faire..
Vous requête externe ne fait pas référence à toutes les variables dans la requête interne. Donc, il est tout simplement agir comme un filtre. Avez-vous l'intention d'inclure minSalesDate dans la requête externe?
Je n'ai l'intention d'inclure, oups. La main de la saisie de la requête.

OriginalL'auteur Alex Kwitny | 2012-08-22