PDA

View Full Version : سوال: چگونه میشود برای قسمتی از کد شرط گذاشت؟



m.ghorbani2000
سه شنبه 21 آبان 1392, 17:47 عصر
با سلام
من می خواستم بدانم که چگونه برای قسمتی از کد SQL شرط گذاشت
برای مثال SELECT SUM(tbl2.money), tbl1.name, tbl1.family,tbl1.ID , tbl2.money, tbl2.FK_ID
FROM tbl1 CROSS JOIN tbl2
من فقط می خواهم که روی کد SELECT SUM(tbl2.money) شرط بزارم که که افرادی که ID آن با ID
اصلی یکی است نشان دهد و مبلغشان را جمع کند یا اگر راه دیگری هم غیر از این است بگویید من این را برای Data Set میخواهم
لطفا راهنمایی کنید
با تشکر

alonmahdi
سه شنبه 21 آبان 1392, 17:56 عصر
با سلام
من می خواستم بدانم که چگونه برای قسمتی از کد SQL شرط گذاشت
برای مثال SELECT SUM(tbl2.money), tbl1.name, tbl1.family,tbl1.ID , tbl2.money, tbl2.FK_ID
FROM tbl1 CROSS JOIN tbl2
من فقط می خواهم که روی کد SELECT SUM(tbl2.money) شرط بزارم که که افرادی که ID آن با ID
اصلی یکی است نشان دهد و مبلغشان را جمع کند یا اگر راه دیگری هم غیر از این است بگویید من این را برای Data Set میخواهم
لطفا راهنمایی کنید
با تشکر

یک پروسیجر بنویس با اون از ورودی کد رو براش بفرست و بعد در برنامه پروسیجر رو فراخونی کن
یا یک where برای همین دستور اضافه کن و توی اون کد جدول فرعی رو با کد جدول اصلی مقایسه کن

m.ghorbani2000
سه شنبه 21 آبان 1392, 18:00 عصر
من این را نوشتم ولی به کد زیر تبدیل میشه tbl1 ON tbl2.FK_ID = tbl1.ID

m.ghorbani2000
سه شنبه 21 آبان 1392, 18:04 عصر
یک پروسیجر بنویس با اون از ورودی کد رو براش بفرست و بعد در برنامه پروسیجر رو فراخونی کن
یا یک where برای همین دستور اضافه کن و توی اون کد جدول فرعی رو با کد جدول اصلی مقایسه کن
میشه یخورده بشتر توضیح دهید؟:اشتباه:

alonmahdi
سه شنبه 21 آبان 1392, 18:26 عصر
اگه کلید های اصلی تون رو درست گفته باشم یک هم چین چیزی باید بنویسید

create procedure STP_sum
@x int
as
SELECT SUM(tbl2.money)
FROM tbl1 CROSS JOIN tbl2
where @x=tbl2.FK_ID and tbl2.FK_ID=tbl1.ID




و بعد هم برای استفاده چه در sql و چه در هر جای دیگه کافیه بنویسی

exec STP_sum value


که STP_sum نام همون پروسیجری هست که نوشتیم, value هم کلیدی که می خوای مقایسه بشه بعد نتیجه رو بهت به صورت یک جدول میده .

m.ghorbani2000
سه شنبه 21 آبان 1392, 18:51 عصر
اگه کلید های اصلی تون رو درست گفته باشم یک هم چین چیزی باید بنویسید

create procedure STP_sum
@x int
as
SELECT SUM(tbl2.money)
FROM tbl1 CROSS JOIN tbl2
where @x=tbl2.FK_ID and tbl2.FK_ID=tbl1.ID




و بعد هم برای استفاده چه در sql و چه در هر جای دیگه کافیه بنویسی

exec STP_sum value


که STP_sum نام همون پروسیجری هست که نوشتیم, value هم کلیدی که می خوای مقایسه بشه بعد نتیجه رو بهت به صورت یک جدول میده .

ببخشید من دستور exec STP_sum value
در C#‎ در SELECT امتحان کردم ولی ارور داد

alonmahdi
سه شنبه 21 آبان 1392, 22:04 عصر
ببخشید من دستور exec STP_sum value
در C#‎ در SELECT امتحان کردم ولی ارور داد

ببینید شما اول این پروسیجر رو در sql درست می کنید بعد در سی شارپ کافیه که exec STP_sum رو بنویسید و بجای value هم مقداری که می خواهید رو بگذارید مثلا بنویسید exec STP_sum 10 ، که 10 کدی هست که می خواهید روی اون کار انجام بشه.:لبخندساده: