khorsandreza
شنبه 01 خرداد 1395, 08:10 صبح
سلام دوستان من در یک جدول مقدار دریافتی حقوق پرسنل را دارم در یک گزارش مدیریتی درخواست شده بود تعداد افراد دریافت کننده حقوق در یک محدوده به شکل زیر باشد
0تا 1 ميليون = 1
1 تا 2 ميليون =2
2 تا 3 ميليون =3
3 تا 4 ميليون =4
4 تا 5 ميليون = 5
5 تا 6 ميليون =6
6 تا 7 ميليون =7
7 تا 8 ميليون =8
8 تا 9 ميليون = 9
9 تا 10 ميليون= 10
محاسبه شود من با استفاده از دستور زیر این کار را انجام می دهم ولی در درخواست جدید روش دیگری بر اساس گرد کردان اعداد درخواست شده در صورتی که مبلغ دریافتی مثلا در محدوده 2 تا سه میلیون ریال بیشتر از 2،500،001 ریال شد در محدوده بالاتر قرار بگیرد (بجای 3 در محدوده 4 باشد)
SELECT codm,
CASE
WHEN (SUM(pard) / 1000000) <= 30 THEN (SUM(pard) / 1000000)
WHEN (SUM(pard) / 1000000) >= 30 THEN 30
WHEN (SUM(pard) / 1000000) = NULL THEN 0
END AS pard from tb_name
group by codm
ایا دستوان روش دیگری دارند
0تا 1 ميليون = 1
1 تا 2 ميليون =2
2 تا 3 ميليون =3
3 تا 4 ميليون =4
4 تا 5 ميليون = 5
5 تا 6 ميليون =6
6 تا 7 ميليون =7
7 تا 8 ميليون =8
8 تا 9 ميليون = 9
9 تا 10 ميليون= 10
محاسبه شود من با استفاده از دستور زیر این کار را انجام می دهم ولی در درخواست جدید روش دیگری بر اساس گرد کردان اعداد درخواست شده در صورتی که مبلغ دریافتی مثلا در محدوده 2 تا سه میلیون ریال بیشتر از 2،500،001 ریال شد در محدوده بالاتر قرار بگیرد (بجای 3 در محدوده 4 باشد)
SELECT codm,
CASE
WHEN (SUM(pard) / 1000000) <= 30 THEN (SUM(pard) / 1000000)
WHEN (SUM(pard) / 1000000) >= 30 THEN 30
WHEN (SUM(pard) / 1000000) = NULL THEN 0
END AS pard from tb_name
group by codm
ایا دستوان روش دیگری دارند