Inquiridor
Colocar um case

Pergunta
-
SET ARITHABORT OFF
SET ANSI_WARNINGS OFF
WITH CTE AS (
SELECT SE1010.D_E_L_E_T_ + E1_FILIAL + E1_NUM + E1_SERIE AS CHAVE, COUNT(E1_PARCELA) AS RESULT
FROM SE1010
WHERE D_E_L_E_T_ <> '*'
GROUP BY
SE1010.D_E_L_E_T_
,SE1010.E1_FILIAL
,SE1010.E1_NUM
,SE1010.E1_SERIE
)
SELECT
CONVERT(VARCHAR,CAST(E1.E1_EMISSAO AS DATETIME),103) AS [Emissão.NF]
,E1.E1_NUM [Nota Fiscal]
,Convert(Numeric(10,2),E1.E1_VLCRUZ) [Total Titulo]
,RTRIM(D2.D2_COD) [Cod.Produto]
,RTRIM(B1_DESC) [Desc.Produto]
,E1.E1_VEND1 [Cod.Vendedor]
,RTRIM(A3.A3_NOME) [Nome Vendedor]
,E1.E1_CLIENTE [Cod.Cliente]
,E1.E1_LOJA [Loja]
,RTRIM(E1.E1_NOMCLI) [Cliente]
,E1.E1_PARCELA [Parcela]
,RESULT [Result]
,CONVERT(VARCHAR,CAST(E1.E1_VENCORI AS DATETIME),103) AS [Vencimento.NF]
,CONVERT(VARCHAR,CAST(E1_BAIXA AS DATETIME),103) AS [Baixa Titulo]
,[Descrição Status]=
CASE
WHEN E1.E1_STATUS='A' THEN 'Titulo Aberto'
WHEN E1.E1_STATUS='B' THEN 'Titulo Baixado'
END
,Convert(Numeric(10,4),(D2.D2_QUANT/B1_CONV2) ) [Qtde NF]
,Convert(Numeric(10,4),D2.D2_PRUNIT) [Pr.Unit Nota]
,Convert(Numeric(10,4),D2.D2_PRUNIT*B1_CONV2) [Pr.Conver.]
,Convert(Numeric(10,4),D2.D2_VALFRE) [Val.Frete]
,Convert(Numeric(10,4),(D2.D2_QUANT/B1_CONV2)/RESULT ) [Qtde Cor.]
,Convert(Numeric(10,4),(D2.D2_VALFRE)/RESULT) [Frt Corrig.]
,Convert(Numeric(10,4),(D2.D2_VALIPI/B1_CONV2)/RESULT ) [IPI Cor.]
,Convert(Numeric(10,4),(D2.D2_PRUNIT*B1_CONV2+((D2.D2_VALFRE/((D2.D2_QUANT/B1_CONV2)/RESULT ))))) [Preço Cor.]
,Convert(Numeric(10,2),(D2.D2_VALBRUT)/RESULT) [Total Nota.]
FROM
SE1010 E1
INNER JOIN SD2010 D2
ON D2.D_E_L_E_T_+ D2.D2_FILIAL + D2.D2_DOC + D2.D2_SERIE = E1.D_E_L_E_T_ + E1.E1_FILIAL + E1.E1_NUM + E1.E1_SERIE
INNER JOIN SB1010 B1
ON D2.D_E_L_E_T_+ D2.D2_COD = B1.D_E_L_E_T_+B1.B1_COD
INNER JOIN SA3010 A3
ON A3.D_E_L_E_T_+ A3.A3_COD = E1.D_E_L_E_T_+E1.E1_VEND1
INNER JOIN SC9010 C9
ON D2.D_E_L_E_T_+ D2.D2_FILIAL + D2.D2_DOC + D2.D2_SERIE + D2.D2_COD + D2.D2_PEDIDO + D2.D2_ITEMPV
= C9.D_E_L_E_T_+C9.C9_FILIAL + C9.C9_NFISCAL + C9.C9_SERIENF + C9.C9_PRODUTO + C9.C9_PEDIDO + C9.C9_ITEM
INNER JOIN CTE
ON CTE.CHAVE = E1.D_E_L_E_T_+E1.E1_FILIAL+E1.E1_NUM+E1.E1_SERIE
WHERE E1.E1_VEND1='000294'
AND E1_EMISSAO>='20150101'
ORDER BY E1_EMISSAO
quero colocar de pequeno período um peso especifico
Campo
E1_EMISSAO -- DATA,CASE WHEN E1.E1_EMISSAO BETWEEN '20161101' AND '20163006'
Todas as Respostas
-
Marco,
O que você deseja fazer? Somente postando o código não temos como te ajudar!!!!
Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
-
Boa Tarde
PedroTenho um campo de produto e cada produto tem um peso, mais no meio do ano pessoal fez uma alteração no peso.
Mais como posso demonstrar o resultado com duas datas diferente com pesos diferente.
por exemploProduto PesoAntigo1 PesoNovo2 Data1 Data2
504084 1,25 1,27 20160630 20160701
Regra
Produto 504084 quando a data1 menor ou igual pegar o pesoantigo1, quando a data for maior ou igual 20160701 pegar a data2 -
Nesse seu exemplo acima
fiz dessa forma , basta usar a função IIF, onde se a data1 for menor ou igual a data2 mostrara o valor do peso antigo, caso contrario mostrará o peso atual
DECLARE @table TABLE ( Produto INT , PesoAntigo1 DECIMAL(8,2), PesoNovo2 DECIMAL(8,2), Data1 DATE, Data2 DATE ) INSERT INTO @table ( Produto , PesoAntigo1 , PesoNovo2 , Data1 , Data2 ) VALUES ( 504084 ,1.25 ,1.27 ,'20160630' , '20160701' ) SELECT T.Produto , T.PesoAntigo1 , T.PesoNovo2 , T.Data1 , T.Data2, [Valor a Ser Mostrado] =IIF( T.Data1 <= T.Data2,T.PesoAntigo1,T.PesoNovo2 )
FROM @table AS T
Wesley Neves
- Editado Wesley Neves quarta-feira, 30 de novembro de 2016 17:06 sql
- Sugerido como Resposta Junior Galvão - MVPMVP sexta-feira, 2 de dezembro de 2016 12:56
-
Boa tarde Marco,
Você está pegando o peso da tabela de faturamento ou do cadastro de produtos?Esse peso está armazenado onde? na D2 ou B1? e o peso antigo?
Abraço!
"A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski
-