PDA

View Full Version : سوال: مشکل در نوشتن یک دستور select در c#



esz_sa
شنبه 20 دی 1393, 10:18 صبح
با سلام
من دارم یه برنامه انبار مینویسم مبتدی هم هستم دوتا جدول دارم جدول اولیم جدول kala هست شامل فیلدهای namekala, codekala هست ک کاربر توش کالا را تعریف میکنه
جدول دومم توش ورودی و خروجیهای انبار ثبت میشه ک شامل فیلدهای codekala,tedad,noe,,date می باشد.فیلد noe مشخص کننده ورودی یاخروجی می باشد.
من برای گرفتن مانده انبار دچار مشکل شدم

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

hamid_hr
شنبه 20 دی 1393, 11:58 صبح
DECLARE @d TABLE (id INT , codeKala INT,Tedad INT, Noe BIT)
INSERT INTO @d
SELECT 1,1001,10,1 UNION ALL
SELECT 1,1001,5,0 UNION ALL
SELECT 1,1001,9,1 UNION ALL
SELECT 1,1001,11,0 UNION ALL
SELECT 1,1001,7,1


SELECT d.codeKala, SUM(CASE WHEN d.Noe = 1 THEN d.Tedad ELSE 0 end),
SUM(CASE WHEN d.Noe = 0 THEN d.Tedad ELSE 0 end) FROM @d d
GROUP BY d.codeKala

esz_sa
شنبه 20 دی 1393, 12:26 عصر
DECLARE @d TABLE (id INT , codeKala INT,Tedad INT, Noe BIT)
INSERT INTO @d
SELECT 1,1001,10,1 UNION ALL
SELECT 1,1001,5,0 UNION ALL
SELECT 1,1001,9,1 UNION ALL
SELECT 1,1001,11,0 UNION ALL
SELECT 1,1001,7,1


SELECT d.codeKala, SUM(CASE WHEN d.Noe = 1 THEN d.Tedad ELSE 0 end),
SUM(CASE WHEN d.Noe = 0 THEN d.Tedad ELSE 0 end) FROM @d d
GROUP BY d.codeKala


آقا حمید ممنون دستتون درد نکنه مشکلم حل شد کدما طبق کد شما اینجوری نوشتم حل شد

"select vrodkhorj.codekala as [],kala.namekala [ ],sum ( case when vrodkhorj.noe=N'' then vrodkhorj.tedad else 0 end)as [] ,sum ( case when vrodkhorj.noe=N'' then vrodkhorj.tedad else 0 end)as [],sum ( case when vrodkhorj.noe=N'' then vrodkhorj.tedad else 0 end) -sum ( case when vrodkhorj.noe=N'' then vrodkhorj.tedad else 0 end) as [] from kala INNER JOIN vrodkhorj ON kala.codekala=vrodkhorj.codekala Group By vrodkhorj.codekala,kala.namekala having count(vrodkhorj.tedad)>=0 "
;

esz_sa
شنبه 20 دی 1393, 12:31 عصر
127441اینم فرم اجرای برنامه

ghasem110deh
شنبه 20 دی 1393, 12:32 عصر
DECLARE @d TABLE (id INT , codeKala INT,Tedad INT, Noe BIT)
INSERT INTO @d
SELECT 1,1001,10,1 UNION ALL
SELECT 1,1001,5,0 UNION ALL
SELECT 1,1001,9,1 UNION ALL
SELECT 1,1001,11,0 UNION ALL
SELECT 1,1001,7,1


SELECT d.codeKala, SUM(CASE WHEN d.Noe = 1 THEN d.Tedad ELSE 0 end),
SUM(CASE WHEN d.Noe = 0 THEN d.Tedad ELSE 0 end) FROM @d d
GROUP BY d.codeKala



سلام این کد رو توضیح میدین که چی کار میکنه ...
بعد SP یا چیز دیگه ای ؟

esz_sa
شنبه 20 دی 1393, 12:40 عصر
این کد میاد تعداد ورودیها را از تعداد خروجی های هر کالا را کم میکنه و مانده هر کالا را نشون میده