PDA

View Full Version : سئوال: نوشتن view براي برنامه اي در SQL با VB.net



tolid123456789
سه شنبه 05 آذر 1392, 08:39 صبح
سلام
چدولي به شكل زير دارم:
--------------------------------------------------------------------------------
كد نمايندگي--شماره اماني--كد كالا--نام كالا--تعداد--قيمت--قيمت كل
4 ----------------- 1------------100-----مداد-----3-----100-----300
4 ------------------2------------100-----مداد-----4-----100-----400
4 ------------------2------------101-----خودكار---5 -----200--1000
4-------------------2------------101-----خودكار--3-----200-----600
5 ------------------3------------100-----مداد-----2-----100-----200
--------------------------------------------------------------------------------
اگر بخواهم مجموع كالاهايي كه به صورت اماني در اختيار نمايندگي شماره 4 است و شماره اماني كوچكتر از 3 دارد را استخراج كنم چه كار بايد بكنم:
خروجي فرضي:
--------------------------------------------------------------------------------
كد نمايندگي--شماره اماني--كد كالا--نام كالا--تعداد--قيمت--قيمت كل
4--------------------1-----------100-----مداد-----7 ----100-----700
4--------------------2-----------101-----مداد-----5-----200-----1000
--------------------------------------------------------------------------------
كارهايي كه تا به حال انجام دادم:
SQL:
در sqlview طراحي كردم و در vb.net آخرين view را(چون چند تا view به هم وابسته شد) كد نويسي كردم ولي چون مجبور بودم آيتم شماره اماني را در آخرين view بياورم گزارشم اشتباه مي شود.(چون گروه بندي بر اساس شماره اماني انجام ميشه و اجازه نمي ده تعداد هاي كالا تجميع بشن)
سئوال : آيا مي شود در sql بر روي view طراحي شده پارامتر قرار داد؟
فعلا كه خطا مي گيره
----
خواستم از data/data source و ايجاد data adapter در vb.net اين مشكل رو حل كنم باز هم نشد.
چون بايد يك dataadapter بسازم و يك شرط (پارامتر) به اون بدم و از اون ديتا اداپتر جدول ديگه اي بسازم كه اين هم امكان پذير نبود.
لطفا راهنمايي كنيد.

Reza_Yarahmadi
شنبه 09 آذر 1392, 07:52 صبح
سئوال : آيا مي شود در sql بر روي view طراحي شده پارامتر قرار داد؟
امکان ارسال پارامتر به view نیست(+ (http://social.msdn.microsoft.com/Forums/sqlserver/en-US/a5390317-a450-4761-a770-31e567d8cc36/view-with-parameter?forum=sqlgetstarted))
بجای view میتونید از inline table-valued function استفاده کنید.

کدی شبیه کد زیر رو امتحان کنید
Select
MIN(AgencyCode)
,HID -- شماره امانی
,GoodCode
,MIN(GoodName)
,SUM(GoodCount)
,MIN(GoodPrice) -- OR MAX(GoodPrice)
,SUM(TotalPrice) -- OR SUM(GoodCount) * MIN(GoodPrice)
From
YourTable
Where
AgencyCode = 4
Group By
HID, GoodCode