הדרכה כללית
נניח שיש לך טבלת מכירות עם העמודות 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.