PDA

View Full Version : نمایش اقلام موچود در انبار بر اساس تعداد



alicpn
پنج شنبه 26 مهر 1397, 20:57 عصر
با سلام و خسته نباشید خدمت دوستان عزیز
بنده دو تا جدول دارم به نام های لیست کالاهای موجود در انبار و جدول خروج کالا
توی جدول لیست کالا 7 قلم کالا وارد کردم با کد کالاهای مختلف مانند عکس پیوست شده زیر
http://uupload.ir/files/ccfz_111.png

حالا میخوام خروج بزنم 2 قلم کالا رو فقط موجودی (تعداد) انبار رو همون دو قلم نشون میده به جا 7 قلم
خب سوال اینجاست مگه من هفت قلم کالا ندارم خب 2 تا که رخوج میزنم از تعدادش کم باید بشه و در کنار 5 قلم دیگه نمایشش بده ولی متاسفانه نمیشه.
من یه کوئری نوشتم لطف میکنین بازبینیش کنین
دیتابیسم رو ضمیمه کردم.
فایل ضمیمه : http://uupload.ir/filelink/9lwEpM9w4Vwh/ij33_anbardari_total.zip
بی زحمت کوئری جدید رو واسم بنویسین.
این کوئری هستش که من نوشتم.





select list_view_kala.code_kala,list_view_kala.name_kala, list_view_kala.name_vk, ( (list_view_kala.tedad) - sum(exit_kala.tedad))as tedad
from list_view_kala,exit_kala where list_view_kala.code_kala=exit_kala.code_kala
group by list_view_kala.code_kala,list_view_kala.tedad,list _view_kala.name_kala,list_view_kala.name_vk
order by code_kala

Mahmoud.Afrad
جمعه 27 مهر 1397, 13:54 عصر
این کد فقط رکوردهای با کد یکسان را در نظر خواهد گرفت.

شما بین جدول کالا و جدول خروج left join بزنید تا همه رکودهای جدول کالا رو داشته باشید. sum ها را هم در صورت null بودن صفر در نظر بگیرید.

alicpn
جمعه 27 مهر 1397, 19:05 عصر
وقتتون بخیر جناب afrad میشه یه مثالی یا کوئری بنویسین.
تا طبق اون انجام بدم

alicpn
شنبه 28 مهر 1397, 00:40 صبح
این کد فقط رکوردهای با کد یکسان را در نظر خواهد گرفت.

شما بین جدول کالا و جدول خروج left join بزنید تا همه رکودهای جدول کالا رو داشته باشید. sum ها را هم در صورت null بودن صفر در نظر بگیرید.

وقتتون بخیر جناب afrad میشه یه مثالی یا کوئری بنویسین.
تا طبق اون انجام بدم

Mahmoud.Afrad
یک شنبه 29 مهر 1397, 19:07 عصر
اسکریپت دو جدول را بزارید جهت تست.

alicpn
یک شنبه 29 مهر 1397, 21:28 عصر
اسکریپت دو جدول را بزارید جهت تست.
درود بر شما
لینک دیتابیسه
http://uupload.ir/filelink/9lwEpM9w4...dari_total.zip (http://uupload.ir/filelink/9lwEpM9w4Vwh/ij33_anbardari_total.zip)
اینم از کوئری هستش که نوشتم.


select list_view_kala.code_kala,list_view_kala.name_kala, list_view_kala.name_vk, ( (list_view_kala.tedad) - sum(exit_kala.tedad))as tedad
from list_view_kala,exit_kala where list_view_kala.code_kala=exit_kala.code_kala
group by list_view_kala.code_kala,list_view_kala.tedad,list _view_kala.name_kala,list_view_kala.name_vk
order by code_kala


و اینم از اسکریپتش:
http://uupload.ir/view/e517_script.zip/



دوستان تا حدودی مشکلم رو حل کردم و اقلام موجود در انبار رو نمایش میده ولی یه مشکل کوچیکی که داره اون کالاهایی که از انبار خروج خوردن موجودیشو نمایش میده مابقی اقلام رو که وارد انبار شده اند و خروج نخورده اند رو NULL نمایش میده.
مانند این لینک عکس:
http://uupload.ir/files/32ad_235345.png
به نظرتون کجای کوئری رو باید تعییر بدم
اینم کوئری :


select list_view_kala.code_kala,list_view_kala.name_kala, list_view_kala.name_vk, ( (list_view_kala.tedad) - sum(exit_kala.tedad))as tedad
from list_view_kala
LEFT OUTER JOIN exit_kala
on list_view_kala.code_kala=exit_kala.code_kala
group by list_view_kala.code_kala,list_view_kala.tedad,list _view_kala.name_kala,list_view_kala.name_vk
order by code_kala

Mahmoud.Afrad
دوشنبه 30 مهر 1397, 21:40 عصر
list_view_kala را به صورت زیر اصلاح کنید
SELECT
dbo.kala.code_kala,
dbo.kala.name_kala,
dbo.vahed_kala.name_vk,
ISNULL(SUM(dbo.input_kala.tedad), 0) AS tedad
FROM
dbo.input_kala RIGHT OUTER JOIN
dbo.kala ON dbo.input_kala.code_kala = dbo.kala.code_kala LEFT OUTER JOIN
dbo.vahed_kala ON dbo.input_kala.code_vk = dbo.vahed_kala.code_vk
GROUP BY dbo.kala.code_kala, dbo.kala.name_kala, dbo.vahed_kala.name_vk
کوئری را هم به صورت زیر اصلاح کنید (فقط تابع isnull اضافه شده)
select
list_view_kala.code_kala,
list_view_kala.name_kala,
list_view_kala.name_vk,
(list_view_kala.tedad - isnull(sum(exit_kala.tedad) , 0)) as tedad
from list_view_kala
LEFT OUTER JOIN exit_kala
on list_view_kala.code_kala=exit_kala.code_kala
group by list_view_kala.code_kala,list_view_kala.tedad,list _view_kala.name_kala,list_view_kala.name_vk
order by list_view_kala.code_kala

alicpn
دوشنبه 30 مهر 1397, 22:39 عصر
list_view_kala را به صورت زیر اصلاح کنید
SELECT
dbo.kala.code_kala,
dbo.kala.name_kala,
dbo.vahed_kala.name_vk,
ISNULL(SUM(dbo.input_kala.tedad), 0) AS tedad
FROM
dbo.input_kala RIGHT OUTER JOIN
dbo.kala ON dbo.input_kala.code_kala = dbo.kala.code_kala LEFT OUTER JOIN
dbo.vahed_kala ON dbo.input_kala.code_vk = dbo.vahed_kala.code_vk
GROUP BY dbo.kala.code_kala, dbo.kala.name_kala, dbo.vahed_kala.name_vk
کوئری را هم به صورت زیر اصلاح کنید (فقط تابع isnull اضافه شده)
select
list_view_kala.code_kala,
list_view_kala.name_kala,
list_view_kala.name_vk,
(list_view_kala.tedad - isnull(sum(exit_kala.tedad) , 0)) as tedad
from list_view_kala
LEFT OUTER JOIN exit_kala
on list_view_kala.code_kala=exit_kala.code_kala
group by list_view_kala.code_kala,list_view_kala.tedad,list _view_kala.name_kala,list_view_kala.name_vk
order by list_view_kala.code_kala

جناب afrad دست گلت درد نکنه خیلی محبت کردی.