Задавайте вопросы, мы ответим
Вы не зашли.
SELECT code_id,CASE WHEN ( pole='1')
THEN
sum(pole1) sum1
ELSE
sum(pole2) sum2l
END SUMMA
FROM 'tab'
вопрос:можно ли использовать в mysql CASE?
ругается
Неактивен
Отредактированно DJK (07.07.2011 17:59:30)
Неактивен
Спасибо.Но мне в дальнейшем как тогда обращаться к этой сумме?В оракле я бы по алиасу обращалась,а здесь?
Неактивен
и потом у меня гораздо больше проверок в этом запросе,это я для простоты написала так.
Неактивен
Я опять хочу ситуацию свою изложить.Немного я не так все описала.
Этот запрос отрабатывает
SELECT st, code_id, sum( pole1 ) sumpole1
FROM `tab`
GROUP BY st, code_id
В итоге я получаю:
st code_id sumpole1
1 1 6
1 2 15
1 3 11
2 1 2021
2 2 6
2 3 44
2 4 2
НО я бы хотела все сформировать по-другому.Просуммировать в зависимости от
значения st,code_id и при этом получить суммы поля sum(pole1) c разным алиасом
в зависимости от st,code_i.При этом все(мой пример) выстроится в 2 строки в зависимости от st:
st sumpole1 sumpole2 sumpole3 sumpole4
1 6 15 11 0
2 2021 6 44 2
мне бы как-то так надо:
SELECT st,code_id, CASE WHEN (code_id=1) THEN sum(pole1) sum1
WHEN (code_id=2) THEN sum(pole1) sum2
WHEN (code_id=3) THEN sum(pole1) sum3
WHEN (code_id=4) THEN sum(pole1) sum4 ELSE rest END
FROM `tab`
GROUP BY st,code_id
Т.е. это возможно при помощи CASE WHEN........
SELECT st,CASE WHEN ( pole='1')
THEN
sum(pole1)
ELSE
sum(pole2)
END summa
FROM 'tab'
sum(expense)sumprihod
Неактивен
В MySQL, насколько я понимаю,
псевдонимы можно использовать для ссылки на столбец в GROUP BY, ORDER BY или в части HAVING, а также для лучшего именования столбцов.
В Where, Case, If их использовать нельзя по причине возможной ситуации когда они не определены.
В связи с этим сделать GROUP вашей выборки в 2 строки не удастся.
Можно конечно извращаться через переменные, но прямого метода нет.
Отредактированно DJK (09.07.2011 13:10:45)
Неактивен