Üç tabloya katılmak ve Tablo A'nın Toplamını (Miktar) hesaplamak istiyorum. Bir şey denedim ve istenen çıktıyı alıyorum. Ama yine de toplu işlev ve Group By yan tümcesine dayalı karışıklık var.Birleştirmelerde Toplama işlevini kullandığımızda Group By cümlesi nasıl kullanılır?
İki veya daha fazla tabloya katılarak toplam değeri hesaplarken, Group By deyiminde belirtmemiz gereken sütunlar nelerdir ve neden bu sütunları vermemiz gerekiyor?
Örnek: İşte benim masam ve istenen sorgu.
TableA: ItemID, JobOrderID, CustomerID, DivisionID, Quantity
TableB: ItemID, ItemName, SpecificationID
TableC: SpecificationID, SpecificationName
TableD: DivisionID, DivisionName
TableE: JobOrderID, JobOrderNo.
TableF: CustomerID, CustomerName
Ben ItemID
, CustomerID
, JobOrderID
ve DivisionID
dayalı toplam (Miktar) almak istiyorum.
Aşağıdaki sorguyu yazdım ve iyi çalışıyor. Ancak Group By ifadesinde herhangi bir sütunu kaldırırsam, istenen sonucu vermez. Niye ya? Group By cümlesi burada ne yapıyor? Toplama işlevini kullanırken Group By cümlesi nasıl belirlenir? İşte benim Sorgum.
SELECT
B.ItemName + ' - ' + C.SpecificationName AS 'ItemName',
SUM(A.Quantity) AS 'Quantity',
A.ItemID,
D.DivisionName,
F.CustomerName,
E.JobOrderNo,
A.DivisionID,
A.JobOrderID,
A.CustomerID
FROM
TableA A
INNER JOIN TableB B ON B.ItemID = A.ItemID
INNER JOIN TableC C ON C.SpecificationID = B.SpecificationID
INNER JOIN TableD D ON D.DivisionID = A.DivisionID
LEFT JOIN TableE E ON E.JobOrderID = A.JobOrderID
LEFT JOIN TableF F ON F.CustomerID = A.CustomerID
WHERE
A.ItemID = @ItemID
GROUP BY
A.ItemID,
A.JobOrderID,
A.DivisionID,
A.CustomerID,
D.DivisionName,
F.CustomerName,
E.JobOrderNo,
B.ItemName,
C.SpecificationName
Herhangi biri, lütfen bir örnek olarak Group By Clause hakkında öneri sunun.
Bazı sütunlar seçersek, bu sütunları Group By cümlesine de vermeliyiz. Öyle mi? – thevan
Evet, seçili sütun, "grup by" şeklinde veya şu gibi bir şekilde olmalıdır: "select max (column_name)" –