2017-03-21 85 views
-2

I需要幫助,我在這裏看到類似的問題,但沒有人幫助我解決此查詢。用不同的where子句和不同的行減去同一列的值

我想減去同一列的值,但不同的where子句,但與各行這樣的:

我想這樣的輸出需要是這樣減去此值:

表where子句1

Product | Qty_totally| Name  
PRODUCT A  10   HORGE 
PRODUCT B  20   OMINION 
PRODUCT C  30   LIKT 

表與where子句2

Product | Qty_totally| Name  
PRODUCT A  25   HORGE 
PRODUCT B  50   OMINION 
PRODUCT C  70   LIKT 

最終查詢表

Product | Qty_totally| Name  
PRODUCT A  -15  HORGE 
PRODUCT B  -30   OMINION 
PRODUCT C  -40 LIKT 

請幫幫我!!!! 我已經試過這樣:

select descrição as 'Produto', sum(Quantidade_Total) as 'Quantidade_Entrada',Controle_armazem.Fornecedor as 'Fornecedor Controle Armazem' from Controle_armazem join produtos on controle_armazem.Modelo = produtos.idProdutos where Controle_armazem.Ativo = 1 and nota_fiscal is not null and nota_fiscal <> '' and defeito = 'Beneficiamento' AND situação = 'Beneficiado - Disponível para uso' GROUP BY descrição,Controle_armazem.fornecedor 

Select descrição AS 'Produto', sum(Quantidade_Total) 'Quantidade Enviada', beneficiamento.Fornecedor as 'Fornecedor' From BeneficiamentoJoin controle_armazem On idPalete = palete join produtos on controle_armazem.Modelo = produtos.idProdutos WHERE Controle_armazem.Ativo = 1 And Beneficiamento.Ativo = 'A' GROUP BY descrição,Beneficiamento.fornecedor 

我不知道該怎麼減「Quantidade_Total」列的值。

+0

您到目前爲止嘗試過什麼? –

+0

我試圖減去列的值像select(從table where table = 1選擇sum(value1)) - (從table where table = 2選擇sum(value1))按名稱組。但mysql返回的語法錯誤 –

+0

你應該真的提供樣本輸入數據(作爲文本而不是圖像),並明確提到你想用它來處理預期輸出。可能有更好的解決方案可能比你會(如果有的話)現在得到不完整的信息 – GurV

回答

1

你只需加入兩個查詢。由於查詢#1中的產品可能不在查詢#2的結果中,反之亦然,所以您希望MySQL不提供完整的外連接。最好的方法應該是從產品表和外連接中選擇兩個查詢。

select 
    q1.product, 
    coalesce(q1.qty_totally, 0) - coalesce(q2.qty_totally, 0) as qty_totally, 
    q1.name as name1, 
    q2.name as name2 
from produtos p 
left join (query #1 here) q1 on q1.product = p.descrição 
left join (query #2 here) q2 on q2.product = p.descrição 
where q1.product is not null or q2.product is not null; 
+0

BIG THANKS,但這幾乎完成了,現在我遇到了沒有出現在兩個表中的記錄問題。例如:我有一個產品出現在第二個查詢上,但沒有出現在第一個查詢上,但是這個查詢以某種方式進行了相減並顯示了一個值,但這應該顯示爲0,因爲該產品只有一條記錄,所以這應該是2 - 0 = 2. –

+0

我的意思是在這種情況下可以是查詢#1中的產品不在查詢#2的結果中,反之亦然。其他問題是,在1個產品有2個名稱的情況下,查詢只顯示1個名稱:( –

+0

好吧,您已經忘記給我們提供這些信息,如果您提到並顯示了這個信息,那就太好了。第一組中的PRODUCT D和第二組中的PRODUCT E以及結果中的兩個)我已經更新了我的答案 –