나는 위대한 작품을 다음 쿼리를 가지고 있지만, 나는 또한 물류 센터에 따라 다른 가격을 가지고있는 각 제품 (이름)의 수익을 결정하려면 : 당신으로SQL CASE 제품 가격
SELECT NAME,
ISNULL([UK - BOLTON], 0) [UK Website],
ISNULL([USA - FLORIDA], 0) [USA Website],
ISNULL([CANADA], 0) [Canada Website],
ISNULL([AUSTRALIA], 0) [Australia Website],
ISNULL([AMAZON (USA)], 0) [Amazon (USA)],
ISNULL([AMAZON (UK)], 0) [Amazon (UK)],
ISNULL([AMAZON (FR)], 0) [Amazon (FR)],
ISNULL([AMAZON (CA)], 0) [Amazon (CA)],
ISNULL([AMAZON (JP)], 0) [Amazon (JP)]
FROM (SELECT p.NAME,
ps.UNITSSOLD,
CASE
WHEN dc.[DESCRIPTION] = 'UK Website' THEN p.UKWEBPRICE
END Revenue,
dc.[DESCRIPTION]
FROM DBO.PRODUCTSALES ps
INNER JOIN DBO.PRODUCT p
ON ps.PRODUCTID = p.PRODUCTID
INNER JOIN DBO.DISTRIBUTIONCENTRE dc
ON ps.DISTRIBUTIONCENTREID = dc.DISTRIBUTIONCENTREID
WHERE ps.ORDERDATE >= CONVERT(DATETIME, '2013-08-01 00:00:00', 102)
AND ps.ORDERDATE <= CONVERT(DATETIME, '2013-08-20 00:00:00', 102)
AND p.PRODUCTCLASSIFICATIONID = 2) [SourceTable]
PIVOT (SUM(UNITSSOLD)
FOR [DESCRIPTION] IN ([UK - Bolton],
[USA - Florida],
[Canada],
[Australia],
[Amazon (USA)],
[Amazon (UK)],
[Amazon (FR)],
[Amazon (CA)],
[Amazon (JP)])) AS PIVOTTABLE
을 내가 CASE/WHEN을 사용하려고 시도했음을 볼 수는 있지만 어떻게해야하는지 혼란 스럽다. 기본적으로 영국 - 볼튼은 각 유통 센터에 대한 제품 테이블 (p) 등에서 UKWebPRice를 가져와야하며 수익이기 때문에 각 센터에 대해 UnitsSold * UKWebPrice 등이됩니다.
희망적입니다. 이 판매 된 제품의 양 이루어졌다과 동일한 -
감사합니다,
우리가 당신을 도우 려 시도 할 수 있도록 약간의 샘플 데이터와 몇 가지 설명을 추가 할 수 있습니까? 더 좋게, SQL 피들에 대한 예제를 설정하면 진행 상황을 이해할 수 있습니다 – Gidil
이 예제를 확인할 수 있습니다 ... ......하지만 네가 뭘하고 있는지 알기가 어렵다. 일부 DDL 및 샘플 데이터를 게시하십시오. 추측 제안 : http://stackoverflow.com/questions/15235320/sql-server-case-statements/15235415#15235415 – granadaCoder