Senhores Boa Noite,
Montei uma query um pouco extensa, que segue anexo, minha dúvida é a seguinte ela está gerando duas linhas no resultado uma com a descrição do F4_DUPLIC como PEDIDO e a outra coluna vem em branco devido a condição que coloquei nesse trecho:
CASE(F4_DUPLIC)WHEN 'S' THEN 'PEDIDO'
WHEN 'N' THEN 'BONIFICACAO'
ELSE ''
END AS F4_DUPLIC
A questão é, queria que as duas linhas virassem uma só e não estou conseguindo, poderiam me ajudar?
Valeu.
Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.
Bom dia,
Acho que entendi o que deseja fazer e acredito que seja possível sem utilizar union e subquerys, veja:
SELECT
A1_COD, A1_NOME,
CK_NUM AS N_ORC,SUM(CK_QTDVEN * CK_PRUNIT) AS VLR_ORC,
D2_PEDIDO AS PEDIDO,
SUM(SC6.C6_QTDVEN * SC6.C6_PRUNIT) AS VLR_PEDIDO,
SUM(SC6R.C6_QTDVEN * SC6R.C6_PRUNIT) AS VLR_RESIDUO,
SUM(D2_TOTAL) AS VLR_FATDESC, SUM(D2_QUANT * D2_PRUNIT) AS VLR_FATBRU,
CASE(SF4.F4_DUPLIC)
WHEN 'S' THEN 'PEDIDO'
WHEN 'N' THEN 'BONIFICACAO'
ELSE ''
END AS F4_DUPLIC,
CASE(SF4R.F4_DUPLIC)
WHEN 'S' THEN 'PEDIDO'
WHEN 'N' THEN 'BONIFICACAO'
ELSE ''
END AS F4_DUPLICR
FROM SD2010
Inner join SA1010 SA1 ON A1_COD = D2_CLIENTE AND SA1.D_E_L_E_T_='' AND A1_LOJA = D2_LOJA
INNER JOIN SC6010 SC6 ON C6_NUM = D2_PEDIDO AND SC6.D_E_L_E_T_='' AND SC6.C6_PRODUTO = D2_COD AND C6_FILIAL = '010103'
INNER JOIN SF4010 SF4 ON SC6.C6_TES = SF4.F4_CODIGO AND SF4.D_E_L_E_T_ ='' AND SF4.F4_FILIAL = '010103'
LEFT JOIN SC6010 SC6R ON SC6R.C6_NUM = D2_PEDIDO AND SC6R.D_E_L_E_T_='' AND SC6R.C6_BLQ = 'R' AND SC6R.C6_FILIAL ='010103'
LEFT JOIN SF4010 SF4R ON SC6R.C6_TES = SF4R.F4_CODIGO AND SF4R.D_E_L_E_T_ = '' AND SF4R.F4_FILIAL = '010103'
LEFT JOIN SCK010 SCK ON CK_NUMPV = SC6.C6_NUM AND SCK.D_E_L_E_T_ =''
WHERE SD2010.D_E_L_E_T_=''
AND D2_PEDIDO = '000111'
AND D2_FILIAL = '010103'
GROUP BY A1_COD, A1_NOME,
SF4.F4_DUPLIC,
SF4R.F4_DUPLIC,
CK_NUM,
D2_PEDIDO
Neste exemplo usei LEFT no orçamento para testar, pois não tenho orçamentos na minha base de dados, os itens de pedidos com resíduos coloquei numa coluna própria, e tratei com Left para casos não tenha resíduos no pedido, aí só recomendo acertar as filiais e o posicionamento que deseja e tratar os null para zero ou vazio.
Douglas Bom Dia,
Entendi perfeitamente o que você fez e agradeço muito, vou tentar ajustar aqui na minha base e volto com o resultado.