Я использую SQLServer2008.Объединить запись по идентификатору
Выход Мой хранимая процедура:
--------------------------------------------------------
BrokerCode | MemberId | FY | SY | TY |
--------------------------------------------------------
104 | 24 | 1140 | 0.00 | 0.00 |
--------------------------------------------------------
104 | 24 | 1140 | 570 | 0.00 |
--------------------------------------------------------
104 | 30 | 500 | 0.00 | 0.00 |
--------------------------------------------------------
104 | 30 | 500 | 360 | 0.00 |
--------------------------------------------------------
И я хочу привести как:
--------------------------------------------------------
BrokerCode | MemberId | FY | SY | TY |
--------------------------------------------------------
104 | 24 | 1140 | 570 | 0.00 |
--------------------------------------------------------
104 | 30 | 500 | 360 | 0.00 |
--------------------------------------------------------
Так я попытался с помощью:
WITH CTE AS (
SELECT BrockerCode,
MemberId,
RN=ROW_NUMBER()OVER(PARTITION BY MemberId ORDER BY MemberID),
FY=MIN(FY)OVER(PARTITION BY MemberId),
SY=MIN(SY)OVER(PARTITION BY MemberId),
TY=MIN(TY)OVER(PARTITION BY MemberId)
FROM @tablePromotee)
SELECT MemberId,BrockerCode,FY,SY,TY FROM CTE WHERE RN = 1
, но все-таки показывать неправильно результат ... пожалуйста, помогите мне .. где я неправ? Благодарю.
не должно быть 'FY = MAX (FY) OVER (PARTITION by MemberId)' вместо 'MIN'? – praveen