כיצד לסובב טבלה ב-SQL Server

סיכום

מאמר זה מתאר כיצד לסובב טבלת SQL Server. נניח שיש לך טבלה בשם QTRSALES. הטבלה כוללת את העמודות שנה, רבעון וכמות עם הנתונים בתבנית הבאה (שים לב שאין שורה עבור הרבעון הרביעי של 1996): Year Quarter Amount ------------------------------- 1995 1 125,000.90 1995 2 136,000.75 1995 3 212,000.34 1995 4 328,000.82 1996 3 728,000.35 1996 2 422,000.13 1996 1 328,000.82 כעת, נניח שברצונך לסובב את הטבלה כך שתוכל לראות את הנתונים בתבנית הבאה: YEAR Q1 Q2 Q3 Q4 ------------------------------------------------------------------- 1995 125,000.90 136,000.75 212,000.34 328,000.82 1996 328,000.82 422,000.13 728,000.35 0.00 השאילתה שבה תשתמש כדי לסובב את הטבלה נמצאת בסעיף הבא במאמר זה.

שאילתת לדוגמה לסיבוב הטבלה

להלן השאילתה שבה ברצונך להשתמש כדי לסובב את הטבלה:

SELECT YEAR,       Q1= ISNULL((SELECT AMOUNT FROM QTRSALES WHERE QUARTER = 1 AND YEAR =  Q.YEAR),0),       Q2= ISNULL((SELECT AMOUNT FROM QTRSALES WHERE QUARTER = 2 AND YEAR =  Q.YEAR),0),       Q3= ISNULL((SELECT AMOUNT FROM QTRSALES WHERE QUARTER = 3 AND YEAR =  Q.YEAR),0),       Q4= ISNULL((SELECT AMOUNT FROM QTRSALES WHERE QUARTER = 4 AND YEAR =  Q.YEAR),0)     FROM QTRSALES Q     GROUP BY YEAR

שאילתה עבור טבלאות גדולות

עבור טבלאות גדולות, שאילתה זו תהיה מהירה יותר:

year=q.year,SUM(CASE quarter WHEN 1 THEN amount ELSE 0 END) as Q1,SUM(CASE quarter WHEN 2 THEN amount ELSE 0 END) as Q2,SUM(CASE quarter WHEN 3 THEN amount ELSE 0 END) as Q3,SUM(CASE quarter WHEN 4 THEN amount ELSE 0 END) as Q4FROM qtrsales qGROUP BY year

זקוק לעזרה נוספת?

הרחב את הכישורים שלך
סייר בהדרכה
קבל תכונות חדשות לפני כולם
הצטרף למשתתפי Microsoft insider

האם מידע זה היה שימושי?

תודה על המשוב!

תודה על המשוב! נראה שכדאי לקשר אותך לאחד מנציגי התמיכה של Office.

×