LINUX.ORG.RU

mysql 2 запроса в одном

 , ,


0

1

Доброго времени суток! Есть вот такой запрос

select count(*) from cdr_201408 where dst='777777' and date(calldate)='2014-08-31'
union
select count(*) from cdr_201408 where dstchannel like 'SIP/1010%' and date(calldate)='2014-08-31';
+----------+
| count(*) |
+----------+
|      202 |
|     4280 |
+----------+
2 rows in set (0.27 sec)

Возможно, ли как то получить результат в разных столбцах? пробовал во так

select (select count(dstchannel) from cdr_201408 where dst='777777' and date(calldate)='2014-08-31') as ishod union select (select count(*) from cdr_201408 where dstchannel like 'SIP/1010%' and date(calldate)='2014-08-31') AS vhod;

+----------+
| ishod    |
+----------+
|      202 |
|     4280 |
+----------+
2 rows in set (0.27 sec)


Ты хоть код отформатируй.

Deleted ()

если mysql умеет делать подзапросы и запросы из-ничего то так.
select (select count(dstchannel) from cdr_201408 where dst='777777' and date(calldate)='2014-08-31') as ishod, (select count(*) from cdr_201408 where dstchannel like 'SIP/1010%' and date(calldate)='2014-08-31') AS vhod

bl ★★★ ()
Ответ на: комментарий от hes74

в mysql должен работать такой говнокод
select
sum( IF( dst='777777' ,1 ,0 ) ) as ishod,
sum( IF( dstchannel like 'SIP/1010%' ,1 ,0 ) ) vhod
from cdr_201408 where date(calldate)='2014-08-31'

bl ★★★ ()
Ответ на: комментарий от hes74

тебе надо знать количество записей удовлетворяющих условиям.
если запись удовлетворяет условию - IF возвращает 1, если не удовлетворяет - 0. таким образом увеличивает или не увеличивает счётчик
и потом считаем количество единичек, а это есть сумма значений этих ноликов и единичек.

bl ★★★ ()
Последнее исправление: bl (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.