ערכתי לאחרונה בתאריך 12.08.10 בשעה 21:17 בברכה, XpDuDe
צור טבלה חדשה עם העמודות שאמרת (מספר לקוח ו12 חודשים), כאשר תאתחל כל חודש בדיפולט 0
תכניס שורה עבור כל לקוח, שזה פשוט עם שאילתת insert ששולפת מהטבלה הקודמת עם group by לפי ה-id (אם אתה מסתבך עם זה אין לי בעיה לרשום)שאילתת pl/sqlתראה משהו בסגנון הזה(יש מצב אני טועה קצת בסינטקס, הרבה זמן מאז שתכנתתי בזה)
begin for user in (select id, month, actions from old_table) loop execute immediate 'update flat_table set ' || user.month || '=' || user.actions || ' where id = ' user.id || ' end loop end
|
החלק הטריקי פה זה ההרצה של שאילתת עדכון דינמית שנבנית על סמך החודש בטבלה המקורית.
אם החודש לא נשמר באותו צורה בשתי הטבלאות,
כלומר נגיד בטבלה המקורית נשמר השם של החודש, ובטבלה החדשה המספר, צריך לשחק קצת עם ההמרות אבל זה הרעיון בגדול.
עדכון : לא יודע למה זה מיושר לי לימין.. תעשה קופי פייסט למקום אחר בשביל לראות נורמלי