הנה הפונקצייה ל- SQL Server:
'Q'+convert(varchar, datepart(qq, pubs.dbo.sales.ord_date))+'-'+ convert(varchar, datepart(yyyy, pubs.dbo.sales.ord_date))
2. רוב ה- DB's זורקים את ה- Joins לפסוקית ה- Where (טרה לא...)
ANSI 92 מעביר אותם אל פסוקית ה- From:
לפני:
המשמעות היא שה- SQL שנוצר כעת עשוי להיות אופטימלי מאחר וה- Joins מתבצעים כבר ברמת ה- From ,כך שכמות הרשומות שהשאילתא צריכה לעבד מצטמצמת כשמגיעים ל- where
(ארקדי ודימה אומרים שתמיד עדיף ככה וכך גםה-execution plan של ה-SQL...)
3.אפשרויות עריכה מתקדמות ב- Join
אפשרות זו קובעת איזה אובייקטים שהמשתתש בוחר בתנאי השאילתא יעברו לפסוקית ה- From,כאשר ניתן לבחור בחלונית זו רק את אותם אובייקטים המבוססים על הטבלאות ב- Join,המשמעות היא שוב שביצועי השאילתא עשויים להיות טובים יותר...
א.אפשרות ראשונה :
Default behavior / No objects in FROM = אובייקטי התנאי נשארים בפסוקית ה-FROM :
ב.אפשרות שניה :
כל- All objects in FROM= אובייקטי התנאי יועברו ל- FROM :
ג.אפשרות שלישית:
Selected objects in FROM = רק האובייקטים הנבחרים יועברו לפסוקית ה- FROM
בסה"כ הכל ANSI 92 נותן אפשרויות שליטה מתקדמות בייצור ה-SQL הגנרי בעולם ויכול לשפר את כל מבנה העולם.עכשיו מה שנשאר לכם זה רק לדבר עם איגור ה-DBA שיבדוק האם יש באמת שיפור בשאילתות....
אחרי שאישרנו את הוספת ההערה ע"י הקלקה על כפתורית ה- Replace
ניתן לראות בסוף ה- SQL שאנו מייצרים בעולם את ההערה:
באמצעות כלי ה- Trace SQL הקיימים ברשותנו נוכל לחזות ב- SQL + מאיזה עולם ואיזה משתמש הריץ
את ה - SQL.
לפרמטר הנ"ל אפשר להוסיף גם את המשתנה :
/* Universe Name - User @Variable('BOUSER') Report @Variable('DOCNAME')*/
ואז גם שם הדוח יופיע בסקריפט ה- SQL.
תבלו.
כיצד ניצן ליצור ב- xcelsius דוח שיציג את X הלקוחות הרווחיים ביותר?
צפו בסרט הבא,גם ככה המנהל שלכם אף פעם לא נמצא בסביבה...
BI Desktop הוא רכיב מגניב לויזואליזציית והצגת הנתונים הישר משולחן העבודה המסוגל לשלב דוחות וובי,xceslisus ועוד בדרך קלה ומהירה,צפו בסרטון הבא המתאר איך להשתמש ברכיב ה- Desktop:
יבוא יום ואני אאגד את כל פונקציות הזמן בחוברת מהודרת,לבנתיים:
הפונקצייה הבאה מחזירה את ימי השבוע הנוכחי נכון ליום ההרצה,לדוגמא:
אם היום ה - 11/09/2007 אני אקבל את כל התאריכים הבאים:9/10/11 ,
כלומר כל הימים מתחילת השבוע עד ליום ההרצה.
הפונקצייה מבוססת על ההנחה שהשבוע מתחיל ביום ראשון ומסתיים ביום שבת וניתן לשלבה ב- where
כאובייקט תנאי בעולם : הפונקצייה מקבלת שדה מסוג תאריך (date...) כ- Input
ומחזירה את כל התאריכים שנמצאים בטווח של השבוע הנוכחי (output)
table.date between trunc(next_day(sysdate,'SUNDAY')-7)
and
trunc (next_day(sysdate,'SUNDAY')-1)
לעזעזל היישור....
הנה סרטון קצר המדגים כמה מהשינויים החדשים בגרסאת XI3.x בוובי:
מעקב אחר שינויים בדוח ו-prompt אופציונאלי:
קראו כאן כיצד ניתן לשפר את ביצועי השאילתות ע"י אופטימיזציית מבני הנתונים שיפור מדדים
http://diamond.businessobjects.com/node/5764
http://diamond.businessobjects.com/node/5691
נה כלי נוסף של חברת Infosol המשלים את יכולות התזמון וההפצה ב- BOXI ומאפשר בין השאר הפצת דוחות למשתמשים מסוגים שונים/יעדים שונים ומאפשר להפיץ את תוצאות תזמון הדוח בפורמטים שונים (בתזמון אחד..)
http://www.infosol.com/business%20intelligence/solutions-infoburst_tour.html
http://www.infosol.com/IBSite/docs/infoburst%20brochure.pdf
וכלי נוסף של חברת APOS המכיל יכולות דומות וכולל יכולת ZIP לדוחות,אבטחת דוחות,אינדיקציה האם לשלוח את הדוח או לא(במקרה שאין תוצאות) ועוד...צפו בדמו מצד ימין:
http://www.apos.com/DistributionServer/Default.aspx
היי
פונקציית זמן אשר ניתן לשלב בעולם,כתנאי כבסיס להשוואה מול תאריך או כפרומפט ומחזירה את החודש הנוכחי בשנה הנוכחית,טוב ל- SQL Server :
{fn year(convert (SMALLDATETIME, {fn CURDATE()}))}*100+{fn month(convert (SMALLDATETIME, {fn CURDATE()}))}
כרגיל היישור...אבל בהעתקה לדיזיינר זה יסתדר.
ניתן ליצור prompt שיאפשר בחירת ערכי null ,notnull או את כולם.
בדרך זו המשתמש יכול לבחור את כל הלקוחות עם ת.חיוב,ללא ת.חיוב או את כולם
גם הפעם הפונקצייה מתאימה ל SQL server...