Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Объединение двух запросов в один


Автор: Zamuta 13.3.2008, 05:48
Помогите объединить два запроса.

Одна таблица.

Код

SELECT SUM(`price`) FROM `common_price` WHERE `accept` = true;
и
SELECT SUM(`price`) FROM `common_price` WHERE `accept` = false;


Т.е. сейчас двумя запросами достаю, нельзя ли объединить в один. Думаю union для одной таблицы не стоит делать? Что скажете?

Автор: ТоляМБА 13.3.2008, 07:41
Код
SELECT SUM(`price`) as a, (SELECT SUM(`price`) FROM `common_price` WHERE `accept` = false) as b
FROM `common_price` WHERE `accept` = true

Правда не знаю пойдёт ли на MySQL, я проверял на ACCESSe

Автор: Zamuta 13.3.2008, 08:41
ТоляМБА, да, работает. Как всегда всё просто. Спасибо.  smile 

Автор: Akina 13.3.2008, 08:44
Код

SELECT `accept`, SUM(`price`) 
FROM `common_price` 
GROUP BY `accept`

Автор: Zamuta 13.3.2008, 08:55
Akina, тоже работает, но удобнее было бы получить одной строкой как у ТоляМБА.

Автор: igorold 13.3.2008, 09:06
Не везде будет работать
Цитата(Zamuta @  13.3.2008,  08:55 Найти цитируемый пост)
как у ТоляМБА.


а как у Akina-а будет ... 

Автор: Zamuta 13.3.2008, 09:10
igorold, спасибо за информацию. У меня версия 5.0.41. Работает как надо. 

Автор: Mayk 13.3.2008, 09:53
Если так хочется в строку, то можно попробовать извращения наподобие 

Код

select sum(price*accept), sum(price*(1-accept)) from testTable;

правда проверял на SQLlite. Но идея думаю йасна.

Автор: Akina 13.3.2008, 10:14
Цитата(Mayk @  13.3.2008,  10:53 Найти цитируемый пост)
можно попробовать извращения наподобие 

На приличном количестве записей из-за вычислений будут тормоза - мама не горюй.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)