Gostaria muito e seria útil como um guia para que outros possam realizá-lo. Além disso, me obrigaria a aprender Crystal Report, já que nunca o utilizei... Obrigado!
Avalados por :
Tenho uma consulta na qual obtenho todas as faturas de fornecedores pendentes de pagamento com as informações do fornecedor, total da fatura, valor aplicado e montante pendente a pagar, além de mostrar a quantidade de dias em atraso da fatura, se for o caso, etc. No entanto, agora é necessário mostrar na mesma consulta os subtotais do total do documento e os subtotais do montante pendente por pagar por fornecedor, ou seja, na mesma consulta somar o total do documento e o total pendente por pagar, mas agrupado por fornecedor. Ainda não consegui mostrar os subtotais dessa forma. Até agora, tenho a seguinte consulta sem os subtotais:
/ SELECIONAR DE [dbo].[OPCH] T4 /
Declarar @Fecha1 como nvarchar(100)
/* ONDE */
set @Fecha1 = /* T4.CreateDate */ '[%0]'
SELECIONAR T0.[CardCode] AS 'Código do Fornecedor', T0.[CardName] AS 'Nome do Fornecedor', T0.[DocNum] AS 'Nro do Documento', T0.[DocDueDate] AS 'Data de Vencimento', T0.[DocTotal] AS 'Total do Documento', T0.[PaidToDate] as 'Valor', (T0.[DocTotal] - T0.[PaidToDate]) as 'Pendente a Pagar', DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1 AS 'Dias', CASO QUANDO DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1<0 ENTÃO 'Vencido' QUANDO DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1>=0 E DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1<=30 ENTÃO '30 Dias' QUANDO DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1>30 E DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1<=60 ENTÃO '60 Dias' QUANDO DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1>60 E DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1<=90 ENTÃO '90 Dias' QUANDO DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10))*-1>90 ENTÃO 'Mais de 90 Dias' FIM COMO 'Prazo de Vencimento','Fatura' as 'Tipo Documento'
DE OPCH T0 ONDE T0.[CreateDate]<=@Fecha1 E T0.[DocStatus]<>'C'
união tudo
SELECIONAR T0.[CardCode] AS 'Código do Fornecedor', T0.[CardName] AS 'Nome do Fornecedor', T0.[DocNum] AS 'Nro do Documento', T0.[DocDueDate] AS 'Data de Vencimento', - T0.[DocTotal] AS 'Total do Documento', T0.[PaidToDate] as 'Valor', (-T0.[DocTotal] - T0.[PaidToDate]) as 'Pendente a Pagar', DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1 AS 'Dias', CASO QUANDO DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1<0 ENTÃO 'Vencido' QUANDO DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1>=0 E DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1<=30 ENTÃO '30 Dias' QUANDO DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1>30 E DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1<=60 ENTÃO '60 Dias' QUANDO DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1>60 E DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1<=90 ENTÃO '90 Dias' QUANDO DATED
Gostaria muito e seria útil como um guia para que outros possam realizá-lo. Além disso, me obrigaria a aprender Crystal Report, já que nunca o utilizei... Obrigado!
Se desejar, posso enviar-lhe um relatório em Crystal que faça o que precisa.
Olá David,
Por que não o transforma em um relatório do Crystal Report? Lá você pode fazer subtotais e o que precisar.
Saudações,
Tere
Olá David,
Por que não utiliza a consulta "Antiguidade do fornecedor" do padrão, indicando o intervalo em "Dias" e "30"?
Cumprimentos,
Tere
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute