2
내 질문에 대한 실수를하면 Stackoverflow의 새 멤버입니다. (예 : 코딩 SQL의 새로운 기능입니다)"case when"절을 중복하지 않고 내부 조인 한 후에
조항의 금액 SUM
을 얻으려고합니다. 여기에 내 테이블
TABLEA이다
UserID transid Brand Amount
UserA 109974 MIX 960.00 --BrandMIX=A & B
UserB 109975 B 894.00
UserC 109976 C 350.00
UserC 109977 MIX 300.00 --BrandMIX=C & D
I는 내부가 a.soid = b.soid 때 i에서 표 A 및 표 B에 가입하려고
Row transid Brand
1 109974 A
2 109974 B
3 109975 B
4 109976 C
5 109977 C
6 109977 D
TableB의 그것을 합친 결과, 표 b에서 transid가 중복되어 결과가 잘못되었습니다. 여기 내 코딩입니다. 내가
ROW_NUMBER()
을 추가
결과를 얻었다
SELECT UserID
,CASE WHEN COUNT(DISTINCT(b.transid)) <> 0 THEN COUNT(DISTINCT(b.transid))
ELSE NULL END) AS 'Frequency'
,SUM(Amount) as 'TotalAmount'
,YEAR(transdatetime) AS 'Year'
,SUM (CASE [Brand] WHEN 'AA' THEN 1 ELSE 0 END) AS [BrandA]
,SUM (CASE [Brand] WHEN 'BB' THEN 1 ELSE 0 END) AS [BrandB]
,SUM (CASE [Brand] WHEN 'CC' THEN 1 ELSE 0 END) AS [BrandC]
,SUM (CASE [Brand] WHEN 'DD' THEN 1 ELSE 0 END) AS [BrandD]
,SUM (CASE [Brand] WHEN 'ZZ' THEN 1 ELSE 0 END) AS [BrandZ]
FROM tableA a
INNER tableB b ON a.transid = b.transid
WHERE is_paid = 'N'
GROUP BY UserID, YEAR(transdatetime)
결과, 나는 WHERE
MIN(ROW_NUMBER)
이있다 SUM
에 (금액) 원하는 불가능 해? 감사합니다. 고맙습니다.
대단히 감사합니다. 질문에서 올바르게 결과를 얻을 수 있습니다. – Rui
btw, 답변을 어떻게 투표 할 수 있습니까? 나는 투표를 클릭했지만 아무런 변화가 없다. – Rui
나는 그것이 당신을 도왔다 니 기쁘다. 그러나 당신이 upvote에 나는 당신의 명성이 최소한이어야한다고 생각한다. – balaji