|
Тема |
Получавам особен ефект с CASE и GROUP |
|
Автор | k (Нерегистриран) | |
Публикувано | 08.12.04 13:40 |
|
|
B case проверявам съдържанието на полето USalaryType, което е от тип enum
CASE връща различен резултат в зависимост от това има ли SUM или няма.
Когато има sUM резултатът е грешен. Моля дайте съвет как да избегна този ефект. Само да не е предложение за смяна на версията на mysql
server version: 3.23.49
mysql> SELECT T_Employed_Ch.*, CASE T_Employed_Ch.USalaryType WHEN 'm' THEN 111 WHEN 'c' THEN 0.71*T_Employed_Ch.UHours*SUM(T_Work.WDays) WHEN 'z' THEN 333 END as zapl FROM T_Work,T_Employed_Ch,T_Employed,T_MonthDays WHERE T_Work.CRid=T_Employed.CRid AND T_Employed_Ch.URid=T_Employed.URid AND T_Employed_Ch.UURid=T_Work.UURid AND T_MonthDays.MDMonth=T_Work.WMonth AND T_Work.CRid=101100040 AND T_Work.WMonth='2004-10-01' AND T_Work.WPayMonth<='2004-11-01' GROUP BY T_Employed_Ch.UURid;
+-----------+-----------+--------+-------------+---------+--------+------------+------------+------+
| UURid | URid | UHours | USalaryType | USalary | UTrSt | UFromDate | UToDate | zapl |
+-----------+-----------+--------+-------------+---------+--------+------------+------------+------+
| 101000039 | 101100053 | 6.0 | c | 120.00 | 300000 | 2004-10-15 | 2004-12-31 | 111 |
| 101000040 | 101100054 | 6.0 | c | 120.00 | 010010 | 2004-10-15 | 2004-12-31 | 111 |
| 101100054 | 101100053 | 8.0 | m | 120.00 | 300000 | 2004-01-12 | 2004-10-14 | 111 |
| 101100056 | 101100055 | 8.0 | m | 120.00 | 000718 | 2004-01-09 | 2004-12-31 | 111 |
| 101100057 | 101100056 | 8.0 | m | 120.00 | 001021 | 2004-01-12 | 2004-12-31 | 111 |
| 101100058 | 101100057 | 8.0 | m | 120.00 | 110000 | 2004-01-09 | 2004-12-31 | 111 |
| 101100059 | 101100058 | 8.0 | m | 120.00 | 100000 | 2004-01-09 | 2004-12-31 | 111 |
| 101100060 | 101100059 | 8.0 | m | 120.00 | 001017 | 2004-01-09 | 2004-12-31 | 111 |
| 101100062 | 101100061 | 8.0 | m | 120.00 | 040900 | 2004-01-09 | 2004-12-31 | 111 |
| 101100063 | 101100062 | 8.0 | m | 120.00 | 070000 | 2004-01-09 | 2004-12-31 | 111 |
| 101100377 | 101100054 | 8.0 | m | 120.00 | 000710 | 2004-03-24 | 2004-10-14 | 111 |
| 101100477 | 101100060 | 8.0 | m | 120.00 | 030300 | 2004-05-01 | 2004-12-31 | 111 |
+-----------+-----------+--------+-------------+---------+--------+------------+------------+------+
12 rows in set (0.00 sec)
|
| |
|
|
|