2016-04-17 3 views
1

У меня есть два запроса. первый из них:Неоднозначное имя столбца Ошибка в запросе SQL

SELECT hardware, SUM(Quantity) FROM request_1v2 where date between "2016-03-12" AND "2016-03-14" group by hardware 

Выход 1-го запроса является

второго запроса является:

SELECT hardware, SUM(Quantity) FROM request_1v2 where date between "2016-03-12" AND "2016-03-12" group by hardware 

Выход 2-го запроса является:

На самом деле я рисую график. Мне нужно объединить эти два запроса в один. Решение, которое я получил это:

SELECT t1.hardware, SUM(t1.Quantity), SUM(t2.Quantity) 
FROM request_1v2 AS t1,request_1v2 AS t2 
WHERE t1.date between "2016-03-12" and "2016-03-14" AND t2.date between "2016-03-12" and "2016-03-12" 
GROUP BY t1.hardware 

Выход решения запроса:

Это неправильно!

Фактический выход, что мне нужно будет: -

Я не знаю, как это сделать. Может кто-нибудь мне помочь.? Кто-то предложил мне написать запрос, как: -

SELECT hardware, SUM(t1.Quantity), SUM(t2.Quantity) 
FROM request_1v2 AS t1,request_1v2 AS t2 
WHERE t1.date between "2016-03-12" and "2016-03-14" AND t2.date between "2016-03-12" and "2016-03-12" 
GROUP BY hardware 

Но это дает ошибку «неоднозначное имя столбца: аппаратное»

Пожалуйста, помогите мне и написать запрос в качестве ответа Спасибо.

Если вам нужна таблица структуры Здесь:

ответ

1

Просто используйте СЛУЧАЙ, вещь даты перекрываться, вы можете захотеть изменить them.Your третий запрос создает декартово JOIN, так как вы не имеют условие JOIN.

SELECT hardware, 
SUM(CASE WHEN date between "2016-03-12" AND "2016-03-14" THEN Quantity ELSE 0 END), 
SUM(CASE WHEN date between "2016-03-12" AND "2016-03-12" THEN Quantity ELSE 0 END) 
FROM request_1v2 
group by hardware 
+0

Спасибо, сэр! ты гений :) Уважение –

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