2010-10-26 15 views
0

Je veux obtenir la somme de la quantité de la requête ci-dessous. comment j'écris la clause group by dans la requête ci-dessous mention.problème dans la clause group by

select top 1 
EvrId, 
TimeStamp, 
Date, 
BnhTnkMik1 as Quantity, 
(select TnkCode from Tanklar where TnkId=BnhTnkId) as Tank, 
FuelCode, 
InvoiceNo from Evrak 
join Hareket on (BnhEvrId=EvrId) 
join Stoklar on (StokId=BnhStok) 
where EvrTip=14 and EvrStatu='A' 
+0

Votre syntaxe laisse beaucoup à désirer. Vous devriez utiliser des alias de table ... Pour l'instant, nous ne pouvons pas vraiment savoir quelles colonnes proviennent des tables. La clause de jointure n'a pas besoin de parenthèses, et votre sous-requête pour le champ Tank serait probablement plus rapide et plus cohérente en tant que jointure. – Fosco

+0

en fait le feild 'BnhTnkMik1' est peut contenir 1 ou plus d'une valeur dans le tableau 'Hareket'. J'ai besoin de la quantité totale pour un produit spécifique en fonction de là EvrId, qui correspond à la colonne BnhEvrId. –

Répondre

0
select 
    EvrId, 
    sum(BnhTnkMik1) as Quantity, 
from Evrak 
join Hareket on (BnhEvrId=EvrId) 
join Stoklar on (StokId=BnhStok) 
where EvrTip=14 and EvrStatu='A' 
group by 
    EvrId 
+0

merci, mais je reçois les mêmes données que précédemment –

+0

@ gorfor.net - Vous devez être plus précis dans votre question. Que voulez-vous que la somme de? L'EvrId, ou une autre colonne? – Martin

0
select top 1 
    EvrId, 
    TimeStamp, 
    Date, 
    SUM(BnhTnkMik1) as Quantity, 
    (select TnkCode from Tanklar where TnkId=BnhTnkId) as Tank, 
    FuelCode, 
    InvoiceNo 
from 
    Evrak 
    join Hareket on (BnhEvrId=EvrId) 
    join Stoklar on (StokId=BnhStok) 
    where EvrTip=14 and EvrStatu='A' 
GROUP BY 
    EvrId, 
    TimeStamp, 
    Date, 
    (select TnkCode from Tanklar where TnkId=BnhTnkId), 
    FuelCode, 
    InvoiceNo 
+0

merci pour la réponse mais je reçois l'erreur suivante après l'exécution Impossible d'utiliser un agrégat ou une sous-requête dans une expression utilisée pour le groupe par la liste d'une clause GROUP BY. –