У меня возникла проблема при объединении трех таблиц (вроде). У меня есть таблица inv с colums: invdate, invname, invqty, invaction. Типы действий, как: добавление, по-прежнему, спастипри соединении трех таблиц данных, отсутствующих для TSQL
table data:
invdate, invname, invqty, invaction
3/1/2015 pizza 10 add
3/1/2015 bread 10 add
3/1/2015 soda 10 add
3/1/2015 pasta 10 add
3/1/2015 pizza 1 remain
3/1/2015 bread 1 remain
3/1/2015 soda 1 remain
3/1/2015 pasta 1 remain
3/1/2015 pasta 1 salvage
текущий запрос:
select a.invdate, a.invname, sum(a.invqty), sum(b.invqty), sum(c.invqty)
from inv a
join inv b on a.invdate = b.invdate and a.invname = b.invname
join inv c on b.invdate = c.invdate and b.invname = c.invname
wanted result:
invdate, invname, added, remain, salavge
3/1/2015 pizza 10 1
3/1/2015 bread 10 1
3/1/2015 soda 10 1
3/1/2015 pasta 10 1 1
результат: я получить только макароны, но не другие. Я пытаюсь показать все строки, а не просто макароны. Я также пробовал с левым внешним соединением и тот же. он отлично работает, когда я пытаюсь объединить 2 таблицы, но не 3 и более. Что мне не хватает? может кто-нибудь объяснить? Спасибо.
Вы присоединяетесь к inv как b дважды. Откуда взялось c? У вас большие проблемы, чем неправильные данные. –
Пожалуйста, объясните, что вы пытаетесь сделать. Запрос работает правильно, но явно не дает желаемых результатов. –
извините опечатка. изменил запрос b на c. Я пытаюсь показать все данные. с именами без спасения, по-прежнему показывает 0 –