2011-07-31 5 views
2

я работаю над следующим запросом: -MySQL вопрос запрос - создание отчета переназначения

SELECT group,item,buffer,stock,(stock-buffer) AS shortexcess 
FROM stkmain, stkbalance, stkbuffer 
WHERE stkmain.item = stkbalance.item 
AND stkmain.item = stkbuffer.item 

этот запрос работает отлично. Я хочу добавить еще один coloumn продаж из таблицы «продажа». пересмотренный запрос: -

SELECT group,item,buffer,stock,(stock-buffer) AS shortexcess, quantity 
FROM stkmain, stkbalance, stkbuffer, sale 
WHERE stkmain.item = stkbalance.item 
AND stkmain.item = stkbuffer.item 
AND stkmain.item = sale.item 

проблема с этим запросом является то, что он показывает только те строки, которые появляются в таблице продажи и не все строки таблицы stkmain. любезно посоветуйте мне, как мне исправить этот запрос.

ответ

4

Используйте Left Join на sktmain, чтобы получить все строки sktmain.

SELECT group,item,buffer,stock,(stock-buffer) AS shortexcess, quantity 
FROM stkmain 
LEFT OUTER JOIN stkbalance ON stkmain.item = stkbalance.item 
... 
+0

@cularisthanks. также теперь общее количество строк больше, чем общее количество предметов. вероятно, потому, что таблица продаж состоит из элементов более одного раза. как получить общий объем продаж для определенного элемента, чтобы в запросе отображались отдельные элементы. концепция для этого заключается в создании отчета о реорганизации с указанием количества штук в запасе, количествах буферов и продажах этих конкретных предметов, если они были получены – mmdel

+1

. просто изменил количество на сумму (количество) и добавил группу по позиции и получил ее правильно. Спасибо, парни – mmdel

1
SELECT `group`, item,buffer, stock, stock-buffer AS shortexcess 
FROM stkmain 
JOIN stkbalance ON skmain.item = stkbalance.item 
JOIN stkbuffer ON stkmain.item = stkbuffer.item 
OUTER JOIN sale ON stkmain.item = sale.item 

Group является reserved keyword и должны быть замаскирован обратными кавычками.

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