我需要帮助,我在这里看到了类似的问题,但没有人帮我解决这个问题。
我想减去同一列的值,但是使用不同的where子句但是有不同的行,如下所示:
我想减去这个值,所以输出需要像这样:
表格中的第1条
Product | Qty_totally| Name
PRODUCT A 10 HORGE
PRODUCT B 20 OMINION
PRODUCT C 30 LIKT
表格第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 :(得分:1)
您只需加入两个查询。由于查询#1中的产品可能不在查询#2的结果中,反之亦然,因此您需要MySQL不提供的完全外连接。那么最好的方法是从products表和外部联接中选择两个查询。
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;