משפט SELECT עם GROUP BY באקסס

karkom

New member
משפט SELECT עם GROUP BY באקסס

אני משתמשת באקסס אך ורק להציג את הנתונים הנמצאים בטבלאות SQL, המקושרות לאקסס ב ODBC..
צריכה את עזרתכם בשיפור הביצועים

אם אני פותחת את הטבלה המקושרת באקסס, היא נפתחת לי מיידית.
הבעיה מתחילה כשאני מבצעת שאילתא באקסס על מנת לקבל סכומים של נתונים ומשתמשת ב GROUP BY.
לוקח מעל דקה לשאילתא להיפתח.

להלן משפט ה SQL של השאילתא באקסס, כאשר "Qry_Shift_Time_Online_1" הינה טבלת SQL המקושרת.

SELECT Qry_Shift_Time_Online_1.DEPTDES, Sum(Qry_Shift_Time_Online_1.StopTime) AS Stop_Sec, Sum(Qry_Shift_Time_Online_1.SampleTime) AS Sample_Sec, Sum(Qry_Shift_Time_Online_1.SetUpTime) AS Setup_Sec, Sum(Qry_Shift_Time_Online_1.StopInTime) AS StopIn_Sec, Sum(Qry_Shift_Time_Online_1.ProdTime) AS Prod_Sec, Sum(Qry_Shift_Time_Online_1.Total_Weight) AS Weight
FROM Qry_Shift_Time_Online_1
GROUP BY Qry_Shift_Time_Online_1.DEPTDES;
 

כלליים

New member
הסיבה פשוטה

כשפותחים את הטבלה המקושרת, היא נפתחת עוד לפני שכל הרשומות נשלפו מהשרת.
אבל כשמשתמשים בgroup, השאילתה צריכה לשלוף את כל הרשומות כדי לסכום.

הפתרון:
view או sp בצד השרת.
 

karkom

New member
משפט IIF

הסיבה שאני מבצעת את ה GROUP BY באקסס היא כי אני צריכה להשתמש ב IIF כדי לסדר נתונים בשדה מסויים.
תוכל להנחות אותי איך עושים זאת ב VIEW ב SQL

(Prod_Weight: IIf([DocWorkC]="Ln11" And (Left([PARTNAME],2)="11" Or Left([PARTNAME],2)="1T"),[QUANT],0

תודה
 

כלליים

New member
CASE

הנה דוגמא
SELECT CASE WHEN Field1 = 'AAA' THEN 1 ELSE 0 END
FROM Table


הפונקציה LEFT מוגדרת גם בSQL, ויש גם דרך אחרת:
CASE WHEN 'abcdefg' LIKE 'ab%' THEN 1 ELSE 0 END
 
למעלה