2013-08-30 2 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가 엽서와 핀을 가져옵니다. 고객 B는 자석과 엽서를 얻습니다. 이제 엽서는 1 열 및 2 열에 있으므로 엽서를 2 씩 나눠서 보여줍니다. 맞습니다.하지만 내 DB에 대한 보고서를 엄청나게 만들고 있습니다. 어떤 제안? – Chuck

관련 문제