PDA

View Full Version : ترکیب دوتا query



maryam_jamshid
شنبه 05 آبان 1386, 08:00 صبح
سلام دوستان
من میخوام query زیر دوتا فیلد num1 وnum2 رو برام برگردونه .چطوری امکان داره.
Select count(maghtaetahseli) as num1 from table1 inner join table2 on table1.code=table2.code where maghtaetahseli= ‘kardani‘and table2.fielde2=’true’ Select count(maghtaetahseli) as num2 from table1 inner join table2 on table1.code=table2.code where maghtaetahseli= ‘karshenasi‘and table2.fielde2=’true’
من دوتا query نوشتم ولی میخوام از طریق ترکیب این دو دوتا فیلد رو باهم بازیابی کنم.چطوری؟؟؟؟

MShirzadi
شنبه 05 آبان 1386, 08:50 صبح
اولا که تمام کد های خودتو منظم بنویس (توی tag کد بزارش) تا خوانایی داشته باشه
ثانیا فکر نکنم بشه چون این دوتا query ممکن هست که تعداد رکورد های متفاوتی در خروجی تولید کنند
یعنی ممکن هست که خروجی


Select count(maghtaetahseli) as num1 from table1 inner join table2 on table1.code=table2.code where maghtaetahseli= ‘kardani‘and table2.fielde2=’true’

مثلا 5 تا رکورد باشه
و


Select count(maghtaetahseli) as num2 from table1 inner join table2 on table1.code=table2.code where maghtaetahseli= ‘karshenasi‘and table2.fielde2=’true’

خروجیش 10 تا رکورد باشه حالا این دوتا رو می خوای چطوری کنار هم قرار بدی

رها
شنبه 05 آبان 1386, 09:13 صبح
این رو امتحان کن


Select count(maghtaetahseli) as num1,0 as num2 from table1 inner join table2 on table1.code=table2.code where maghtaetahseli= ‘kardani‘and table2.fielde2=’true’
union all
Select 0 as num1,count(maghtaetahseli) as num2 from table1 inner join table2 on table1.code=table2.code where maghtaetahseli= ‘karshenasi‘and table2.fielde2=’true’

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

maryam_jamshid
سه شنبه 08 آبان 1386, 07:55 صبح
زمانی که این کد رو در view مربوط بهdata base ام می ریزم اجرا میشه ولی وقتیکه میخوام view رو ذخیره کنم ،error میده و ذخیره نمیشه!!؟؟

select count(ekhtelal) as num from elatemoraje where ekhtelal='True' union select count(ezterab) as num from elatemoraje where ezterab='True'

تصویر error رو میفرستم

maryam_jamshid
سه شنبه 08 آبان 1386, 10:30 صبح
مشکل با تغییر دستور به صورت زیر حل شد ولی زمانی که من
در viewعبارات فارسی رو وارد میکنم وقتیکه اجرا میکنم عبارت فارسی رو به صورت علامت ؟؟؟ نمایش میده!!!!!!!!!!!!؟؟؟؟؟
SELECT *
FROM (SELECT ' اختلال ' AS name, COUNT(ekhtelal) AS num
FROM elatemoraje
WHERE ekhtelal = 'True'
UNION
SELECT 'اضطراب' AS name, COUNT(ezterab) AS num
FROM elatemoraje
WHERE ezterab = 'True') DERIVEDTBL

maryam_jamshid
سه شنبه 08 آبان 1386, 12:03 عصر
مشکل حل شد ،محض اطلاع بقیه:
با قرار دادن N در دستور select فارسی رو نمایش میده.