PDA

View Full Version : انجام یک کوئری روی دو جدول خرید و فروش



NiMble_m
چهارشنبه 09 فروردین 1391, 02:09 صبح
سلام دوستان
من ۳ تا جدول دارم به صورت زیر:
جدول کالا : id, name
جدول خرید: id , kala_id, tarikh ,tedad
جدول فروش: id , kala_id, tarikh, tedad

حالا میخوام sum تعداد خرید و تعداد فروش تمام کالاها رو توی یک روز خاص رو بدست بیارم
مثلا کالای CD در تاریخ ۱۵-۲-۹۰ در کل ۱۵۰۰تا خریداری شده و ۱۴۰۰ تا فروخته شده

خیلی فکر کردم ولی به جواب نرسیدم
ممنون میشم کمک کنید

lastmory
چهارشنبه 09 فروردین 1391, 04:34 صبح
Select
K.Name
,(Select Isnull(Sum(KH.tedad), 0)From kharid KH Where KH.Kala_Id = K.Id And KH.Tarikh = @Tarikh)Count_Kharid
,(Select Isnull(Sum(F.tedad), 0)From forosh F Where F.Kala_Id = K.Id And F.Tarikh = @Tarikh)Count_Forosh
From Kala K

به جای Tarikh@ تاریخ رو بزار

NiMble_m
چهارشنبه 09 فروردین 1391, 04:46 صبح
خیلی ممنون دوست عزیز
میشه لطف کنی و بگی این دستورو چجوری نوشتی تا منم یاد بگیرم

البته چیزی که میخواستم نبود ولی این دستوراتو شما خیلی جالب نوشتید و دوست دارم یاد بگیرم

من مشکلمو با سی شارپ حل کردم یعنی یک بار sum جدول خریدو گرفتم و یک بار sum جدول فروش و داخل دیتاگرید join کردم و چون تعداد داده های من هیچ وقت به ۱۰۰ تا هم نمیرسه زیاد روی سرعت برنامه تاثیری نداشت

lastmory
چهارشنبه 09 فروردین 1391, 10:49 صبح
چیزی که میخواستم نبود
سلام
روشهای دیگه ای هم برای رسیدن به این چیزی که شما میخواستی ، هست
میشه دقیقا بگی چی میخواستی


یک بار sum جدول خریدو گرفتم و یک بار sum جدول فروش
خوب اگه از یه کالا هیچی نه فروخته شده و نه به فروش رفته شده باشه از کجا باید بفهمی
باید یه شرط بزاری که Sum صفر باشه ، یا یه Select دیگه بزنی
شایدم نیاز نداری که نشون بدی ؟؟؟

NiMble_m
چهارشنبه 09 فروردین 1391, 11:55 صبح
گفتم من مشکلم حل شد برنامه رو هم تحویل دادم فقط خواستم بفهمم شما این روشو چجوری انجام دادی بازم ممنون

lastmory
چهارشنبه 09 فروردین 1391, 12:05 عصر
بازم ممنون
دکمه تشکر یادت نره :لبخند:
به این روش Subquery inside a SELECT میگن
که میتونی توی سلکت اصلی ت از جداول دیگه ای هم سلکت بزنی و توی سلکت اصلی ت مثل یه فیلد باهاش برخورد میشه