GROUP BY ב- PIVOT

משקיען10

New member
GROUP BY ב- PIVOT

בניתי את השאילתה הזו, רוצה לעשות שורת סיכום אחת לכל cardcode , עכשיו אני מקבל מספר שורות לכל כרטיס. משהו יכול לעזור לי?

SELECT *
FROM (
SELECT
[PmntDate], [CheckDate], [TaxDate], [VendorCode], [VendorName], [Details], case when [Printed]='y' then N'כן' else N'לא' end as 'הודפס', [DdctPrcnt], [Deduction],
year(CheckDate) as 'year',left(datename(month,CheckDate),3) as [month],
[CheckSum] as 'Amount'
FROM ocho WHERE [Canceled] ='N' ) as PAYMENTS
PIVOT
(
SUM(Amount)
FOR [month] IN (jan, feb, mar, apr,
may, jun, jul, aug, sep, oct, nov, dec)
) AS MONTHTOTAL
 

גרי רשף

New member
צמצם את העמודות ב-Select שבתוך הסוגריים

המערכת יוצרת את העמודות לפי עמודה Month,
בכל תא היא מחשבת Sum כפי שהגדרת על Ammount,
ואת כל השאר היא מפרטת (כלומר- מצרפת אותו לפסוקית ה-Group By).
יש להסיר את מה שמיותר ואז יהיו פחות שורות.

נסה לשחק עם זה.
 

משקיען10

New member
PITOACH

לא הבנתי למה אתה מתכוןן. יש אפשרות לצמצם את שורת התוצאות לשורה אחת?
 

משקיען10

New member
עדין לא הצלחתי...בבקשה עזרתכם...

שוב, כתבתי את השאילתה הנ"ל ואני מקבל את התוצאה כאשר לכל כרטיס יש כמה שורות במצקום שורת ריכוז אחת. איך אני יכול לסכום אותם לשורה אחת לכל כרטיס?
ברו לי שיש לזה פתרון, אני רק לא מצליח ליישם אותו. זה ממש יעזור לי במקום העבודה, אשמח לכל עזרה.

SELECT * FROM ( SELECT
[PmntDate],
[CheckDate],
[VendorCode],
[VendorName],
[CheckNum],
year(CheckDate) as 'year',left(datename(month,CheckDate),3) as [month],
[CheckSum] as 'Amount'
FROM ocho WHERE [Canceled] ='N'
) as MonthSum
PIVOT
(
SUM(Amount)
FOR [month] IN (jan, feb, mar, apr,
may, jun, jul, aug, sep, oct, nov, dec)
) AS SUMpivot
 

משקיען10

New member
DDL - לזה התכוונת?

create table SUM (
[vendorcode] int,
[vendorname] char(10),
[Date] datetime
(

כל שאר העמודות תמחוק מהשאילתה אני לא ממש צריך אותם ב- SELECT
תודה מראש!!!
 

pitoach

New member
אהלן משקיען, תבדוק את המשפט הזה:

"כל שאר העמודות תמחוק מהשאילתה"
למה לא תמחוק בשבילנו מה שאפשר ותכין לנו את הרקע לעבור על השאלה כשהיא מוכנה מצומצמת ככל הניתן?

כפי שהסברתי במסר צריך להשקיע מעט על שאלות ולא רק להמתין להשקעה של התשובות
לזה התכוונתי למשל. תן לנו להתמקד בעזרה לבעיה. אני בדרך החוצה עכשיו ואם תספיק לשים משהו מצומצם בזמן הקרוב אז כשאני אגיע הביתה אני אנסה לעבור על השאלה שלך.
 

pitoach

New member
ואל תשכח DML

DML זה השאילתה של הכנסת נתונים לדוגמה. אנחנו צריכים כמה נתונים לדוגמה כדי להבין על מה מדובר וכדי לקבל נתונים

למעשה DDL+DML זה מה שצריך לשים במקום התמונות ששמת
כל זה מוסבר בקישור ששמתי מעל שמסביר מה זה DDL+DML ולמה צריך אותם כששואלים בפורום שאלה
 

משקיען10

New member
תודה חברים הצלחתי להגיע לתוצאה

כמו שגרי רשם פשוט מחקתי את רוב העמודות למעט ה- VENDOR CODE+NAME ובנוסך הייתי צריל להכניס את ה- DEC לתוך סוגריים מרובעות.
ככה זה עבד לי:

SELECT *
FROM (
SELECT
[VendorCode], [VendorName], year(CheckDate) as 'year',left(datename(month,CheckDate),3) as [month],
[CheckSum] as 'Amount'
FROM ocho WHERE [Canceled] ='N' ) as PAYMENTS
PIVOT
(
SUM(Amount)
FOR [month] IN (jan, feb, mar, apr,
may, jun, jul, aug, sep, oct, nov, [dec])
) AS MONTHTOTAL
 

משקיען10

New member
תודה וסליחה (PITOACH) על השאלה שלא נוסחה כראו

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

pitoach

New member
יישר כוח
אני מקווה שבפעם הבאה ייצא לי

לעזור יותר בשאלה המקורית עצמה
 

משקיען10

New member
שאלה תיאורטית

מהשאילתה הקודמת בניתי עוד שאילתה דומה לראשונה (די בקלות ארחי שהבנתי את העקרון) על 2 טבלאות אחרות שחיברתי באמצעות UNION . האם ניתן לעשות סיכום של סכומים לפי מספר אובייקט כלשהוא (הוא מציין לי אם זה חשבונית רכש או חשבונית רכש זיכוי במערכת שלי) ואז לעשות את הסיכום לפי חודשים? רשמתי את השאילתה המלאה כולל DML ו- DML אבל משום מה היא לא עולה עכשיו דרך העבודה, העתקתי אותה למייל שלי ואני אנסה שוב מהבית בערב. אני אנסה לחדד ולהבהיר שוב אתך הצורך. השאילתה צריכה לסכם את סך הכל של כל המסמכים לאותו ספק מסוג חשבוניות רכש לפי חודשים בשורה אחת ושורת סיכום של חשבוניות הרכש. אם אין חשבוניות זיכוי אז מופיע רק שורת סיכום של תעודות הרכש.
זה אפשרי?
 

pitoach

New member
תצרף את הקודים בקובץ להודעה

אל תכתוב קוד בתוכן ההודעה (זה חסום מטעמי אבטחה וגם פחות נוח לקרוא)
הכ טוב לצרף לצרף קובת טקסט או ZIP של טקסט
 
למעלה