מנסה שוב, שאילתת הצלבות sql server

goldsoft

New member
מנסה שוב, שאילתת הצלבות sql server

שלום לכולם איך עושים ב- sql server 2000 שאילתת הצלבות כמו שעושים ב- access ? בתודה מראש
 

גרי רשף

New member
הדרכה כללית

נניח שיש לך טבלת מכירות עם העמודות Lakoah, Prit, Camut; ואתה מעוניין בדוח שיציג בכל עמודה פריט אחר, בכל שורה לקוח אחר, ובכל משבצת את סה"כ הכמות של הלקוח לפריט. משהו כזה: ------- Avi - Batya -Geri- Dina . . . אבטיח בננה גויאבה . . פקודת ה-SQL תיראה בערך כך:
Select Prit, Sum(Case When Lakoah='Avi' Then Camut End) Avi, Sum(Case When Lakoah='Batya' Then Camut End) Batya, Sum(Case When Lakoah='Geri' Then Camut End) Geri, Sum(Case When Lakoah='Dina' Then Camut End) Dina, ... .... From Tavla Group By Prit​
מכיוון שאינך יודע מראש את שמות הלקוחות, יש לעבור בלולאה על שמות כל הלקוחות שבטבלה
Select Distinct Lakoah From Tavla​
ועל כל אחד לבנות את שורת ה- ()Sum המתאימה ולשרשר אותן זו לזו, להוסיף את ה-Select בהתחלה ואת ה-Group By בסוף, ואת המחרוזת שמתקבלת להריץ על ידי פקודת
Exec(@S)​
כאשר S@ הוא משתנה מסוג (8000)VarChar הכולל את פקודת ה-SQL הדינמית הנ"ל. הלולאה ב-SQL נקראת Cursor ויש כללים כיצד לפתוח אותה ומה לעשות בכל Loop.
 
למעלה