בעיה עם תת שאילתה בSQL

slidert

New member
בעיה עם תת שאילתה בSQL

שלום לכולם,
ניסיתי לבנות שאילתה קצת מורכבת ב SQL SERVER, אך לא ממש הצלחתי להריץ את השאילתה,
קצת רקע: יש לי 2 טבלאות, 1 - נתונים כלליים, 2 - נתונים כספיים על שנה שעברה (מחולק לפי חודשים),
ברצוני להוציא נתונים על מספר לקוח לפי הפרמטרים הבאים: A - יתרה בחודש דצמבר, B - סך דמי ניהול לכל שנה שעברה.
להלן השאילתא שבניתי:
select
fundmain.gen_bankaccountnumber as 'מספר לקוח,
sum(mfpreviousyear.gen_managementfee) as 'דמי ניהול
from
FilteredGen_fundmain as fundmain
left outer join
FilteredGen_mfPreviousyear as mfpreviousyear on (fundmain.gen_fundmainid = mfpreviousyear.gen_fundnumber)
where
fundmain.gen_bankaccountnumber in ('1111111111') and
fundmain.gen_bankaccountnumber in
(select
fundmain.gen_bankaccountnumber as 'מספר לקוח',
fundmain.gen_customeridnumber as 'מספר זיהוי',
fundmain.gen_customername as 'שם לקוח',
fundmain.gen_fundcreationdate as 'תאריך הצטרפות',
fundmain.gen_banknamename as 'שם בנק',
fundmain.gen_brokernumbername as 'מספר סוכן',
mfpreviousyear.gen_balance as 'יתרת לקוח'
from
FilteredGen_fundmain as fundmain
left outer join
FilteredGen_mfPreviousyear as mfpreviousyear on (fundmain.gen_fundmainid = mfpreviousyear.gen_fundnumber)
where
mfpreviousyear.gen_month = 12)
GROUP BY fundmain.gen_bankaccountnumber

וזאת ההודעת שגיאה שאני מקבל:
Msg 116, Level 16, State 1, Line 1

Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.

אשמח לדעת מה אני עושה לא טוב,
תודה מראש לכל העוזרים
 

AvidaEinav

New member
מספר העמודות המוחזרות

התת שאילתא שלך אמורה להחזיר עמודה אחת ולא שבע.

אתה בעצם אומר: תבדוק אם השדה שלי fundmain.gen_bankaccountnumber
נמצא בתוך הטבלה עם ה 7 עמודות שאני מחזיר לך..

WHERE Your_Field IN (SELECT Field FROM Table)
 
למעלה