2016-06-24 5 views
0

Я хочу объединить результаты двух запросов в один resulttable с тремя колоннами, result1, result2 и dateday, запросы противоречивыОбъединить результаты двух SQL запросов

SELECT COUNT(DISTINCT `cust`) AS result1, DATE(`date`) AS dateday 
FROM `salg_test` 
WHERE `saved` =0 
AND `is_void` =0 
GROUP BY dateday 
ORDER BY dateday DESC 

SELECT COUNT(DISTINCT `cust`) AS result2, DATE(`date`) AS dateday 
FROM `salg_test` 
WHERE `saved` =1 
AND `is_void` =0 
GROUP BY dateday 
ORDER BY dateday DESC 

Я хочу, чтобы оба результата должны быть сгруппированы по и упорядочивается переменной dateday.

ответ

2

должны быть в состоянии сделать что-то вроде этого:

SELECT COUNT(DISTINCT CASE `saved` when 0 then `cust` else null end) AS result1 
, COUNT(DISTINCT CASE `saved` when 1 then `cust` else null end) AS result2 
, DATE(`date`) AS dateday 
FROM `salg_test` 
WHERE `is_void` =0 
GROUP BY dateday 
ORDER BY dateday DESC 
+0

Большое вам спасибо! Im, используя PHPmyadmin, возвращает следующую ошибку: 064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «И' is_void »= 0 GROUP BY датируется ORDER BY датой DESC LIMIT 0, 30 'в строке 5 любые подсказки? –

+0

Извините, удалил ваше условие и забыл изменить и, попробуйте мое редактирование. – Kateract

+0

Конечно! Я был слеп, должен был это увидеть сам. Большое спасибо Kateract, только то, что мне нужно :) –

0

как насчет:

WHERE (`saved`= 1 OR `saved`= 0) 

Или, если только возможные значения saved являются 1 или 0, просто опустить это условие из запроса в целом.

+0

Спасибо за ваш ответ ПРОМТ Хуан :) Мне нужно reults из 'saved' = 1, чтобы быть в одной колонке и' saved' = 0, чтобы быть в другой столбец, знаете ли вы, как я могу справиться с этим условием ИЛИ? –

+0

Похож, что у Kateract может быть запрос, который вы хотите. Удачи! –

+0

Спасибо! да, ответ Kateracts был именно тем, что я сказал :) –

Смежные вопросы