PDA

View Full Version : شمارش تعداد true ها در یک فیلد



صنم
دوشنبه 11 شهریور 1387, 13:14 عصر
سلام
من یک جدول دارم که چند تا فیلد boolean داره که مقدار true وfalse را نگهداری می کند می خوام تعداد true ها رو در هر فیلد شمارش کنم یک stored procedure دارم به شکل زیر :

((فیلدهای s1y وs1n) به صورت boolean هستند)




Create PROCEDURE [dbo].[drug-ch1-report3]
select username, count(s1y) as s1y,count(s1n) as s1n from drug_ch1
group by username


این پراسیجر فقط تعداد هر فیلد بدون توجه به true یا false بودنش را می شمارد و نشان می دهد ولی من می خوام که تعداد true ها را در فیلد s1y و s1n برگرداند .

ASKaffash
دوشنبه 11 شهریور 1387, 13:45 عصر
سلام
اینطوری نمیشه باید count(s1y) و count(s1n) را بصورت یک SubQuery بنویسید ودر شرط آن subQuery این شرط را اعمال کنید

bsng110
دوشنبه 11 شهریور 1387, 16:37 عصر
هوالحکیم. سلام. من که نمی دونم دقیقاً این فیلد ها چی هستن و چی ذخیره می کنن و قراره حاصل کوئری چی باشه ولی می دونم با where و having این قضیه باید حل بشه و نیاز به چیز پیچیده ای نباید باشه! لطفاً با where تست کنید و ببینید که چه اتفاقی می افتد! یا علی حق نگهدارتون

صنم
سه شنبه 12 شهریور 1387, 11:59 صبح
مشکل با nullif حل میشه به صورت زیر :


select username, count(nullif(s1y, 0)), count(nullif(s1n, 0))
from drug_ch1
group by username