PDA

View Full Version : syntax sql



saed2006
چهارشنبه 28 اسفند 1387, 16:04 عصر
با سلام
چجوری میشه این دو تا کوئری رو به یکی کوئری تبدیل کرد






SELECT Sum(masahat) AS sumnim, tb
FROM temp
WHERE type='نيم طبقه'
GROUP BY tb;

SELECT Sum(masahat) AS sum, tb
FROM temp
WHERE type<>'نيم طبقه'
GROUP BY tb;

anubis_ir
چهارشنبه 28 اسفند 1387, 16:47 عصر
sub query بنويس

saed2006
چهارشنبه 28 اسفند 1387, 17:01 عصر
چه کوتاه و اموزنده
دوست من راهنمایی بیشتر؟توضیح بده

saed2006
چهارشنبه 28 اسفند 1387, 19:12 عصر
این سوب کوئری
select (SELECT SUM(masahat)as bbb
FROM temp
WHERE type <> 'نیم طبقه' GROUP BY tb),

(SELECT SUM(masahat)as b
FROM temp
WHERE type = 'نیم طبقه' GROUP BY tb)
from temp

ولی خطا
چه کنیم؟

حامد مصافی
چهارشنبه 28 اسفند 1387, 19:37 عصر
این بستگی داره به این که بخواهید مشترکات این دو کوئری را برگردانید یا مجموع را.
با توجه به اینکه شروطه دو کوئری خلاف هم هستند لذا هیچ مقدار برگشتی مشترکی بین این دو وجود ندارد، به منظور جمع نتایج می توانید از یک کودری مانند این استفاده کنید.


SELECT Sum(masahat) AS sumnim, tb
FROM temp
GROUP BY tb;

saed2006
جمعه 30 اسفند 1387, 18:08 عصر
واقعا کسی جواب رو نمیدونه یا مسئله رو نمیفهمید

object
شنبه 01 فروردین 1388, 01:54 صبح
اميدوارم هموني باشه كه ميخواي

SELECT tb, sum( case when
type='نيم طبقه'
then masahat else 0 end) AS sumnim1,
sum( case when
type !='نيم طبقه'
then masahat else 0 end) AS sumnim2
FROM temp
GROUP BY tb

accpascal
شنبه 01 فروردین 1388, 11:39 صبح
اگر جمع طبقه و نیم طبقه را جدا می خواهی که باید فیلد type را در group by و در select قرار دهی ولی اگر جمع هر طبقه را می خواهی فکر میکنم شما در هر رکورد مساحت همان طبقه را داری و نیازی به جمع نخواهی داشت
فکر می کنم سوال شما کمی حداقل برای من نامفهوم است
لطفا کمی بیشتر توضیح دهید

Mbt925
یک شنبه 02 فروردین 1388, 11:15 صبح
ادغام این دو کوئری یعنی حذف شرط Where.

ولی در کل برای اتصال دو کوئری که ستون های یکسان دارند، می تونید از دستور Union استفاده کنید.





SELECT Sum(masahat) AS sumnim, tb
FROM temp
WHERE type='نيم طبقه'
GROUP BY tb
UNION
SELECT Sum(masahat) AS sumnim, tb
FROM temp
WHERE type<>'نيم طبقه'
GROUP BY tb