לעזרת המומחים אודה
מדובר באיזו חידה שנתקלתי בה לא מזמן ורציתי לשתף ולשאול את המומחים להצעתם ולאפשרות פתרון יותר חכם ממה שאני הגעתי אליו.
בתודה מראש
יש לנו טבלה:
create table #TempTable (
tID int PRIMARY KEY IDENTITY,
userName varchar(10),
userType int,
TypeValue decimal(4,2)
)
ויש בה נתונים כאלה:
insert into #TempTable Values
('one', 1, 12),
('one', 1, 20),
('one', 2, 10),
('one', 2, 10),
('two', 1, 10),
('two', 1, 20),
('two', 1, 30),
('two', 2, 10)
עכשיו נציג את הנתונים בצורה מסכמת עבור כל TYPE:
userName userType typeValue
one 1 32
two 1 60
one 2 20
two 2 10
ונגיד שבא לנו להציג נתונים מסוכמים עבור כל USER עם סיכום של כל הTYPES שלו:
userName Type1 Type2
one 32 20
two 60 10
הפתרון הסביר, שאני הגעתי אליו הוא כזה:
SELECT userName,
Type1 = (select SUM(typeValue) from #TempTable where T.userName = userName and userType = 1),
Type2 = (select SUM(typeValue) from #TempTable where T.userName = userName and userType = 2)
FROM #TempTable T
GROUP by userName
נורא מעניין אותי האם לדעתכם יש דרך יותר פשוטה, נכונה, טובה להגיע לאותה התצוגה(של סיכום פר יוזר)
מי יכול לעזור?
נ.ב: סתם חשבתי על זה, מה אם נגיד יש לנו מספר TYPES בלתי ידוע מראש?