2012-04-28 5 views
0

enter image description hereErreur de jointure interne

Comment joindre ces 2 tables? La colonne commune est ref#no.

Mais je reçois une erreur

Colonne « encre Delivery.DELDATE » est invalide dans la liste de sélection parce que il ne figure pas dans une fonction d'agrégation ou la clause GROUP BY

SELECT 
    a.REF#NO, a.DELDATE, a.REQUST_By, a.PROJ_CODE, 
    b.PR_CODE, b.INK_CODE, b.QTY, b.PRICE 
from [Ink Delivery detals] b 
inner join [Ink Delivery] a ON a.REF#NO = b.REF#NO 
GROUP by a.REF#NO 
+6

Juste n'ajoutez pas le «GROUP BY» - vous n'en avez pas besoin, vous n'utilisez aucune fonction d'agrégat (comme 'SUM' ou' COUNT') –

+0

vous devez omettre la clause group by, vous peut utiliser la clause group by lorsque vous travaillez avec des fonctions d'agrégation telles que count() –

+0

-1 pour ne pas sélectionner de réponse –

Répondre

3

Il ne s'agit pas d'un problème de jointure interne. Regardez l'erreur que vous obtenez. Vous essayez de faire un Group By, mais vous avez des colonnes dans votre instruction Select qui ne sont pas contenues dans la clause Group By. Lorsque vous effectuez un Group By, votre instruction Select ne peut contenir que des colonnes référencées dans la clause Group By ou les colonnes agrégées (par exemple, Sum, Average).

Vous souhaiterez peut-être analyser comment utiliser Group By dans SQL Server.

3
SELECT 
    a.REF#NO, a.DELDATE, a.REQUST_By, a.PROJ_CODE, 
    b.PR_CODE, b.INK_CODE, b.QTY, b.PRICE 
from [Ink Delivery detals] b 
inner join [Ink Delivery] a ON a.REF#NO = b.REF#NO 
ORDER BY a.REF#NO 

est le bon moyen.