我想實現的是根據列'iSellthruTxnDateKey'中相應的DISTINCT值求和列'nTxnCount'。SQL DISTINCT一列,SUM另一個
以一種更簡單的方式告訴它。我試圖找到列A的不同值,然後列B中的值將被總結。
| A | B |
--------------
| Dog | 1 |
| Cat | 5 |
| Horse | 10 |
| Horse | 10 |
| Dog | 1 |
| Snake | 5 |
會發生什麼......
| A | B |
--------------
| Dog | 1 |
| Cat | 5 |
| Horse | 10 |
| Snake | 5 |
最終結果.. 這是聚合值以上
下面的總和是我測試查詢:
SELECT ftKPI.sCompanyCode AS 'Country'
, dmCus.sFQOutletOnlineStore AS 'Outlet Online Store'
, dmCus.sDistributionChannel AS 'Distribution Channel'
, dmCus.sGlobalRetailSegmentName AS 'Global Retail Segment'
, dmCus.sCustomerCode AS 'Customer Code'
, dmCus.nsCustomerName AS 'Customer Name'
, SUM(DISTINCT ftKPI.nTxnCount)
FROM ftRetailKPI ftKPI
INNER JOIN dmCalendar dmCal (NOLOCK) on ftKPI.iSellthruTxnDateKey = dmCal.iCalendarKey
INNER JOIN dmProduct dmPRd (NOLOCK) on ftKPI.iProductKey = dmPrd.iProductKey
INNER JOIN dmCustomer dmCus (NOLOCK) on ftKPI.iCustomerKey = dmCus.iCustomerKey
INNER JOIN dmProductSalesArea dmPSA (NOLOCK) ON ftKPI.iProductSalesAreaKey = dmPSA.iProductSalesAreaKey
INNER JOIN ftExchangerate XRate (NOLOCK) on XRate.sYearMonth = '201506' AND ftKPI.sCompanyCode = XRate.sCompanyCode
WHERE (ftKPI.sCompanyCode IN ('LSA') OR dmCus.sCountryName IN ('Australia'))
AND dmPRd.sProductCategoryName IN ('Tops', 'Bottoms', 'Accessories')
AND dmCus.sDistributionChannel IN ('DI')
AND dmCus.sGlobalRetailSegmentName IN ('Co. Operated Comm')
AND dmCus.sFQOutletOnlineStore IN ('First Quality Store')
AND dmCal.sFiscalYYYY IN ('2015')
AND dmCal.sFiscalQQ IN ('Q1', 'Q2')
AND dmCal.sFiscalWeek IN ('Wk01')
AND dmCus.sCustomerCode IN ('0020017262')
GROUP BY ftKPI.sCompanyCode
, dmCus.sCountryName
--, dmPrd.sBrandName
, dmCus.sCustomerCode
, dmCus.nsCustomerName
, dmCus.nsCustomerNameLocal
, dmCus.sDistributionChannel
, dmCus.sGlobalRetailSegmentName
, dmCus.sRetailSegmentGroupName
, dmCus.sFQOutletOnlineStore
, dmCus.sCustomerCode
在B中的例子值不總結... – i486
那麼你想在哪裏顯示所有的總和?也許你不明白sql的概念... – danvasiloiu
在我的例子中,它是總結。我提到最終的結果是21.我可能不太瞭解SQL,但我有它的概念。 –