PDA

View Full Version : حاصلجمع چند دستور select



Sal_64
دوشنبه 22 مهر 1387, 20:02 عصر
سلام

من چندین sp جهت گزارشگیری از چند تیبل دارم
مثل: (بخشی از کد)


(select sum(baghimande_seporde) as sum from seporde where sal < @sal) as m1,
(select sum(baghimande_seporde) as sum from seporde where ((mah between '01' and @mah) and sal=@sal)) as m2,حالا نتایج این دو select بالا باید با هم جمع شن و نتیجه باید از چیزی شبیه این(کد بالا) تفریق شود

تکلیف چیه باید همه جا عینا کل دستور رو بنویسم و حاصل رو از هم کم کنم
یا راه دیگه ای هم هسست مثلا بشه از m1 و m2 استفاده کرد


با تشکر

whitehat
دوشنبه 22 مهر 1387, 20:09 عصر
select (select1...)+(select2..) as result

Sal_64
دوشنبه 22 مهر 1387, 21:04 عصر
سلام
تشکر

(select2..)
یعنی هر جا که احتیاج به تکرار باشه باید کل دستور select دوباره نوشته شه :ناراحت:

Itist82
دوشنبه 22 مهر 1387, 21:21 عصر
خوب اگه کوئری ای داری که خیلی تکرار می شه بردار stored procedure بکنش تا فقط اسمشو صدا بزنی.

Sal_64
سه شنبه 23 مهر 1387, 10:53 صبح
سلام


خوب اگه کوئری ای داری که خیلی تکرار می شه بردار stored procedure بکنش تا فقط اسمشو صدا بزنی.صورت سوال رو دوباره مطالعه کنید


داخل یه sp باید چندین بار از نتیجه یه select استفاده کنم آیا در هر بار باید کل دستور select رو بنویسم ! راه دیگه ای نیست؟؟


با تشکر

mehdi58
سه شنبه 23 مهر 1387, 15:27 عصر
اگه قرار بنا بر تكرار يه Select باشه فكر مي كنم بهتره از CTE استفاده كنين .

ASKaffash
چهارشنبه 24 مهر 1387, 09:04 صبح
اگه قرار بنا بر تكرار يه Select باشه فكر مي كنم بهتره از CTE استفاده كنين .
سلام
لطفا دار باره CTE توضیح دهید

mehdi58
چهارشنبه 24 مهر 1387, 09:43 صبح
سلام
لطفا دار باره CTE توضیح دهید

در اين زمينه استاد عزيز آقاي ثباتي . توضيحات لازم رو دادن .
لطفا لينكهاي زير رو بررسي كنين :

http://barnamenevis.org/forum/showthread.php?t=66951

http://barnamenevis.org/forum/showthread.php?t=82287&highlight=cte

موفق باشين