PDA

View Full Version : دستور جستجوی sql



ma.rad
چهارشنبه 26 شهریور 1393, 18:15 عصر
باسلام خدمت دوستان
یه سوالی داشتم به نظر من که سخته ، یه جدول دارم به شکل زیر:


فوق لیسانس
کارشناسی
کاردانی
دیپلم
سیکل
ابتدایی
مدرک
نام شهر


8
6
4
5
7
3
شیراز


9
6
1
4
5
5
تهران


5
5
5
4
4
2
قم




حالا میخوام تعداد افراد دیپلمه و زیر دیپلم هر شهر وهمینطور تعداد افراد با مدرک کاردانی به بالای هر شهر رو با یه کوئری به من بده ؟
مثل جدول زیر: لطفا بگید دستور Sql چی می شه؟

کاردانی و بالاتر
دیپلم و زیر دیپلم ها
مدرک
نام شهر



18
15
شیراز


16
14
تهران


15

10
قم

mohammad reza beizavi
چهارشنبه 26 شهریور 1393, 18:25 عصر
:متفکر: گرفتی ما رو؟!!!


SELECT cityName, ebtedaee+rahnamee+diplom as f1, kardani+lisans_foghelisans as f2 FROM table

ma.rad
چهارشنبه 26 شهریور 1393, 19:00 عصر
هـــــا.....
نکته سختش یادم رفت بگم که جدول من فیلد عدد نداره عزیز به این شکله:


نام

مدرک
سال تولد
تاهل
...
...
نام شهرمحل تولد


علی
دیپلم
1360
1
..
..
شیراز


محمد
کارشناسی
1365
1
..
..
تهران


رضا
سیکل
1370
2
..
..
قم




حالا من میخوام اون جستجویی که گفتم رو این جدول باشه؟ تعداد افراد دیپلمه و زیر دیپلم هر شهر وهمینطور تعداد افراد با مدرک کاردانی به بالای هر شهر.
البته سوال من ناقص بود شرمنده...

Reza_Yarahmadi
شنبه 29 شهریور 1393, 12:24 عصر
میتونید بصورت زیر عمل کنید
Select
City,
Col1 = Sum(Case When Qualification IN (N'ابتدایی', N'سیکل', N'دیپلم') Then 1 Else 0 END)
Col2 = Sum(Case When Qualification IN (N'کاردانی', N'کارشناسی', N'فوق لیسانس') Then 1 Else 0 END)
From YourTable
Group BY City

ma.rad
دوشنبه 31 شهریور 1393, 20:56 عصر
سلام
جواب نمی ده.
به جای Qualification چی بزارم؟مدرک؟

Reza_Yarahmadi
سه شنبه 01 مهر 1393, 08:23 صبح
به جای Qualification چی بزارم؟مدرک؟
اسم ستون مدرک تحصیلی
احتمال داره بخاطر وجود حرف ک و ی در دستور و تفاوتش با اطلاعات موجود در دیتابیس (تفاوت کدهای یونیکد) جواب درست رو به شما نده. برای برطرف کردن این مشکل هم از روشهای یکسان سازی این حروف که توی سایت بارها مطرح شده استفاده کنید.

ma.rad
جمعه 04 مهر 1393, 08:52 صبح
یه تستش بکن!جواب نداد دوست عزیز