Função SUM no envio de e-mail

SQL Server

SQL

07/04/2020

Galera, estou com esse código para envio de e-mail com o valor de estoque por cliente.
Gostaria de colocar a função
SUM
no saldovalor mas não estou conseguindo podem me ajudar?


DECLARE @xml NVARCHAR(MAX)
DECLARE @body NVARCHAR(MAX)

SET @xml = CAST(( SELECT [saldovalor] AS ''''td'''','''''''',[apelido] AS ''''td''''

FROM am_saldoestoque a
INNER JOIN MS_PESSOA B ON (B.HANDLE = cliente)
WHERE CLIENTE NOT IN (10004,12058)
GROUP BY apelido, saldovalor

FOR XML PATH(''''tr''''), ELEMENTS ) AS NVARCHAR(MAX))


SET @body =''''<html><body><H3>Segue valor de mercadoria em estoque</H3>
<table border = 1> 
<tr>
<th> Cliente </th> <th> Valor de estoque </th></tr>''''    
 
SET @body = @body + @xml +''''</table></body></html>''''

EXEC msdb.dbo.sp_send_dbmail
@profile_name = ''''tac'''', 
@body = @body,
@body_format =''''HTML'''',
@recipients = ''''isaque.silva@tactransportes.com.br'''', 
@subject = ''''Saldo valor de mercadoria em estoque'''' ;
Isaque

Isaque

Curtidas 0

Melhor post

Emerson Nascimento

Emerson Nascimento

07/04/2020

para isso você terá de retirar o campo saldovalor da cláusula group by.
DECLARE @xml NVARCHAR(MAX)
DECLARE @body NVARCHAR(MAX)
 
SET @xml = CAST(( SELECT sum([saldovalor]) AS ''''td'''','''''''',[apelido] AS ''''td''''
FROM am_saldoestoque a
INNER JOIN MS_PESSOA B ON (B.HANDLE = cliente)
WHERE CLIENTE NOT IN (10004,12058)
GROUP BY apelido
 
FOR XML PATH(''''tr''''), ELEMENTS ) AS NVARCHAR(MAX))
  
SET @body =''''<html><body><H3>Segue valor de mercadoria em estoque</H3>
<table border = 1> 
<tr>
<th> Cliente </th> <th> Valor de estoque </th></tr>''''   
  
SET @body = @body + @xml +''''</table></body></html>''''
 
EXEC msdb.dbo.sp_send_dbmail
@profile_name = ''''tac'''', 
@body = @body,
@body_format =''''HTML'''',
@recipients = ''''isaque.silva@tactransportes.com.br'''', 
@subject = ''''Saldo valor de mercadoria em estoque'''' ;
GOSTEI 1

Mais Respostas

Isaque

Isaque

07/04/2020

para isso você terá de retirar o campo saldovalor da cláusula group by.
DECLARE @xml NVARCHAR(MAX)
DECLARE @body NVARCHAR(MAX)
 
SET @xml = CAST(( SELECT sum([saldovalor]) AS ''''td'''','''''''',[apelido] AS ''''td''''
FROM am_saldoestoque a
INNER JOIN MS_PESSOA B ON (B.HANDLE = cliente)
WHERE CLIENTE NOT IN (10004,12058)
GROUP BY apelido
 
FOR XML PATH(''''tr''''), ELEMENTS ) AS NVARCHAR(MAX))
  
SET @body =''''<html><body><H3>Segue valor de mercadoria em estoque</H3>
<table border = 1> 
<tr>
<th> Cliente </th> <th> Valor de estoque </th></tr>''''   
  
SET @body = @body + @xml +''''</table></body></html>''''
 
EXEC msdb.dbo.sp_send_dbmail
@profile_name = ''''tac'''', 
@body = @body,
@body_format =''''HTML'''',
@recipients = ''''isaque.silva@tactransportes.com.br'''', 
@subject = ''''Saldo valor de mercadoria em estoque'''' ;


Deu certo, Obrigado.
GOSTEI 0
POSTAR