2013-08-30 42 views
-2
SELECT [Import].[Product Name 1], Sum([Import].[Product 1 Qty]) AS [SumOfProduct 1 Qty] 
FROM [Import] 
GROUP BY [Import].[Product Name 1]; 

我有這個,它是像我需要的工作。我現在需要它爲產品和Qtys 2 - 10做同樣的事情。我想讓它增加第一個總數,而不是在我的表中創建一個新列。我需要這個來產生一個報告和一個出口結算和運輸。計數在一個字段中的項目在表中凝結

我正在從客戶端導入客戶信息。它具有所有必需的運輸信息以及我們應該運送的產品和每位客戶的數量。每個客戶最多可以有10個具有不同數量的項目。我的目標是生成此報告,其唯一目的是顯示項目和需要從庫存中提取的項目數量。我們將使用此報告作爲我們履行部門的「選票」。它也將用於客戶的帳單。我希望表中的項目和數量是爲了導出回客戶端。表中唯一需要的2列是產品和訂購的產品總數。

+0

你可以給你的表和示例數據的架構定義? – Taemyr

回答

1

您將與union all做到這一點:

SELECT [Import].[Product Name], Sum([Import].[Product 1 Qty]) AS [SumOfProduct Qty] 
FROM [Import] 
GROUP BY [Import].[Product Name 1] 
union all 
SELECT [Import].[Product Name 2], Sum([Import].[Product 2 Qty]) AS [SumOfProduct Qty] 
FROM [Import] 
GROUP BY [Import].[Product Name 2] 
union all 
... 
SELECT [Import].[Product Name 10], Sum([Import].[Product 10 Qty]) AS [SumOfProduct Qty] 
FROM [Import] 
GROUP BY [Import].[Product Name 10]; 

這是假設該產品是在每列不同。如果產品是相同的,你想要的總:

SELECT ProductName, sum(ProductQTY) 
FROM (select [Product Name 1] as ProductName, [Product 1 Qty] as ProductQty 
     from [Import] union all 
     select [Product Name 2], [Product 2 Qty] 
     from [Import] union all 
     . . . 
     select [Product Name 10], [Product 10 Qty] 
     from [Import] 
    ) i 
GROUP BY ProductName; 

...在這兩種情況下意味着你​​把類似的代碼對產品的其餘部分,而不是字面的「...」。

+0

如果他們可以是相同或不同的第一個仍然工作? – Chuck

+0

@Chuck。 。 。第一個版本將每列的計數放在單獨的行中。所以,一個產品最多可能出現10次。第二個將它們組合成一行。 –

+0

我有一個問題.....我有兩個不同的客戶同樣的產品。假設CustomerA得到一張明信片和一個別針。 CustomerB獲得磁鐵和明信片。現在明信片在第1列和第2列,因此它向我顯示了2張明信片,每張1張。正確的數字,但使報告巨大的我的分貝。有什麼建議麼? – Chuck

相關問題