2

Access DB から製品数量の合計を取得する必要がありますが、ベンダー名、ID 番号、説明などを数量の合計とともに含めます。

次のようなクエリがあります。

SELECT [Vendor Name], SUM([Quantity]) AS Total
FROM [SalesDB]
WHERE [Vendor No] IN (1,2,3,4,5,6,7,8) AND [Item Description] = 'bolts'
Group By [Vendor Name]

素晴らしい作品...次のようなクエリでより多くの列をプルする必要があることを除いて:

SELECT [Vendor Name], [Vendor No], [Item No], [Item Description], [Item Cost], [Quantity],  SUM([Quantity]) AS Total
FROM [SalesDB]
WHERE [Vendor No] IN (1,2,3,4,5,6,7,8) AND [Item Description] = 'bolts'
Group By [Vendor Name]

機能せず、集計エラーがスローされます

したがって、代わりに次のようにします。

SELECT [Vendor Name], [Vendor No], [Item No], [Item Description], [Item Cost], [Quantity],  SUM([Quantity]) AS Total
FROM [SalesDB]
WHERE [Vendor No] IN (1,2,3,4,5,6,7,8) AND [Item Description] = 'bolts'
Group By [Vendor Name], [Vendor No], [Item No], [Item Description], [Item Cost], [Quantity]

これは実行されますが、結果が大きく変わります。このクエリを処理する適切な方法は何ですか?

4

2 に答える 2

6

これを試して:

最初のクエリを派生テーブルとして作成し、実際のテーブルと結合してすべてのフィールドを取得する必要があります

    SELECT A.[Vendor Name], [Vendor No], [Item No], [Item Description], 
[Item Cost], [Quantity],B.Total
 from [SalesDB] A 
 inner join
    (SELECT [Vendor Name], SUM([Quantity]) AS Total
    FROM [SalesDB]
    WHERE [Vendor No] IN (1,2,3,4,5,6,7,8) 
    AND [Item Description] = 'bolts'
    Group By [Vendor Name])B
  on A.[Vendor Name]=B.[Vendor Name]
于 2012-07-31T06:33:11.760 に答える
0

ただのアイデア

SELECT 
        [ItemID],
        SUM(ItemQty) as 'QTY',
        [ItemName] as 'ItemName',
        itemPrice as 'itemPrice',
        SUM(ItemTotalPrice) as  'Total'
    FROM
        [OrderDetails]
        inner join Orders
        on [OrderDetails].OrderID=Orders.OrderID
         where Orders.TableID != 4
    GROUP BY  ItemID, [ItemName],itemPrice order by ItemID
于 2016-10-07T22:50:52.797 に答える