Ich habe eine gespeicherte Prozedur wie folgt:Übersetzen meiner gespeicherten Prozedur Abfrage in gültigen T-SQL
ALTER PROCEDURE [dbo].[getReconciliationMarketMessageInCRM] --'02 jun 2014'
@readDate datetime
AS
declare @newDate date
select a.New_MessageTypeCode as 'messageType', count(a.New_MessageTypeCode) as 'Received'
into #temp1
from New_marketmessagein as a
--where CreatedOn between '2016-7-18 04:00' and '2016-7-19 04:00'
where CreatedOn between @readDate + ' 04:00' and dateadd(day,1,@readDate) + ' 04:00'
group by a.New_MessageTypeCode
select
sum(CASE WHEN #temp1.messageType = '014R' then #temp1.Received else 0 end) as '014R',
sum(CASE WHEN #temp1.messageType = '101' then #temp1.Received else 0 end) as '101',
sum(CASE WHEN #temp1.messageType = '101P' then #temp1.Received else 0 end) as '101P',
sum(CASE WHEN #temp1.messageType = '101R' then #temp1.Received else 0 end) as '101R',
sum(CASE WHEN #temp1.messageType = '102' then #temp1.Received else 0 end) as '102',
SUM(CASE WHEN #temp1.messageType = '102P' then #temp1.Received else 0 end) as '102P',
SUM(CASE WHEN #temp1.messageType = '102R' then #temp1.Received else 0 end) as '102R',
SUM(CASE WHEN #temp1.messageType = '105' then #temp1.Received else 0 end) as '105',
SUM(CASE WHEN #temp1.messageType = '105L' then #temp1.Received else 0 end) as '105L',
SUM(CASE WHEN #temp1.messageType = '106D' then #temp1.Received else 0 end) as '106D',
SUM(CASE WHEN #temp1.messageType = '106E' then #temp1.Received else 0 end) as '106E',
SUM(CASE WHEN #temp1.messageType = '110' then #temp1.Received else 0 end) as '110',
SUM(CASE WHEN #temp1.messageType = '111' then #temp1.Received else 0 end) as '111',
SUM(CASE WHEN #temp1.messageType = '111A' then #temp1.Received else 0 end) as '111A',
SUM(CASE WHEN #temp1.messageType = '111L' then #temp1.Received else 0 end) as '111L',
SUM(CASE WHEN #temp1.messageType = '111R' then #temp1.Received else 0 end) as '111R',
SUM(CASE WHEN #temp1.messageType = '112' then #temp1.Received else 0 end) as '112',
SUM(CASE WHEN #temp1.messageType = '112R' then #temp1.Received else 0 end) as '112R',
SUM(CASE WHEN #temp1.messageType = '112W' then #temp1.Received else 0 end) as '112W',
SUM(CASE WHEN #temp1.messageType = '114' then #temp1.Received else 0 end) as '114',
SUM(CASE WHEN #temp1.messageType = '115' then #temp1.Received else 0 end) as '115',
SUM(CASE WHEN #temp1.messageType = '115R' then #temp1.Received else 0 end) as '115R',
SUM(CASE WHEN #temp1.messageType = '116' then #temp1.Received else 0 end) as '116',
SUM(CASE WHEN #temp1.messageType = '116A' then #temp1.Received else 0 end) as '116A',
SUM(CASE WHEN #temp1.messageType = '116N' then #temp1.Received else 0 end) as '116N',
SUM(CASE WHEN #temp1.messageType = '116R' then #temp1.Received else 0 end) as '116R',
SUM(CASE WHEN #temp1.messageType = '117D' then #temp1.Received else 0 end) as '117D',
SUM(CASE WHEN #temp1.messageType = '117R' then #temp1.Received else 0 end) as '117R',
SUM(CASE WHEN #temp1.messageType = '122' then #temp1.Received else 0 end) as '122',
SUM(CASE WHEN #temp1.messageType = '122R' then #temp1.Received else 0 end) as '122R',
SUM(CASE WHEN #temp1.messageType = '130D' then #temp1.Received else 0 end) as '130D',
SUM(CASE WHEN #temp1.messageType = '130R' then #temp1.Received else 0 end) as '130R',
SUM(CASE WHEN #temp1.messageType = '131' then #temp1.Received else 0 end) as '131',
SUM(CASE WHEN #temp1.messageType = '137R' then #temp1.Received else 0 end) as '137R',
SUM(CASE WHEN #temp1.messageType = '261' then #temp1.Received else 0 end) as '261',
SUM(CASE WHEN #temp1.messageType = '300' then #temp1.Received else 0 end) as '300',
SUM(CASE WHEN #temp1.messageType = '300S' then #temp1.Received else 0 end) as '300S',
SUM(CASE WHEN #temp1.messageType = '300W' then #temp1.Received else 0 end) as '300W',
SUM(CASE WHEN #temp1.messageType = '301' then #temp1.Received else 0 end) as '301',
SUM(CASE WHEN #temp1.messageType = '301N' then #temp1.Received else 0 end) as '301N',
SUM(CASE WHEN #temp1.messageType = '303R' then #temp1.Received else 0 end) as '303R',
SUM(CASE WHEN #temp1.messageType = '305' then #temp1.Received else 0 end) as '305',
SUM(CASE WHEN #temp1.messageType = '306' then #temp1.Received else 0 end) as '306',
SUM(CASE WHEN #temp1.messageType = '306W' then #temp1.Received else 0 end) as '306W',
SUM(CASE WHEN #temp1.messageType = '307' then #temp1.Received else 0 end) as '307',
SUM(CASE WHEN #temp1.messageType = '307W' then #temp1.Received else 0 end) as '307W',
SUM(CASE WHEN #temp1.messageType = '308' then #temp1.Received else 0 end) as '308',
SUM(CASE WHEN #temp1.messageType = '310' then #temp1.Received else 0 end) as '310',
SUM(CASE WHEN #temp1.messageType = '310W' then #temp1.Received else 0 end) as '310W',
SUM(CASE WHEN #temp1.messageType = '311' then #temp1.Received else 0 end) as '311',
SUM(CASE WHEN #temp1.messageType = '320' then #temp1.Received else 0 end) as '320',
SUM(CASE WHEN #temp1.messageType = '320W' then #temp1.Received else 0 end) as '320W',
SUM(CASE WHEN #temp1.messageType = '321' then #temp1.Received else 0 end) as '321',
SUM(CASE WHEN #temp1.messageType = '330' then #temp1.Received else 0 end) as '330',
SUM(CASE WHEN #temp1.messageType = '331' then #temp1.Received else 0 end) as '331',
SUM(CASE WHEN #temp1.messageType = '332' then #temp1.Received else 0 end) as '332',
SUM(CASE WHEN #temp1.messageType = '332W' then #temp1.Received else 0 end) as '332W',
SUM(CASE WHEN #temp1.messageType = '341' then #temp1.Received else 0 end) as '341',
SUM(CASE WHEN #temp1.messageType = '342' then #temp1.Received else 0 end) as '342',
SUM(CASE WHEN #temp1.messageType = '352R' then #temp1.Received else 0 end) as '352R',
SUM(CASE WHEN #temp1.messageType = '591' then #temp1.Received else 0 end) as '591',
SUM(CASE WHEN #temp1.messageType = '594' then #temp1.Received else 0 end) as '594',
SUM(CASE WHEN #temp1.messageType = '595' then #temp1.Received else 0 end) as '595',
SUM(CASE WHEN #temp1.messageType = '596' then #temp1.Received else 0 end) as '596',
SUM(CASE WHEN #temp1.messageType = '597' then #temp1.Received else 0 end) as '597',
SUM(CASE WHEN #temp1.messageType = '598' then #temp1.Received else 0 end) as '598',
SUM(CASE WHEN #temp1.messageType = '601' then #temp1.Received else 0 end) as '601',
SUM(CASE WHEN #temp1.messageType = '602' then #temp1.Received else 0 end) as '602',
SUM(CASE WHEN #temp1.messageType = '700' then #temp1.Received else 0 end) as '700',
SUM(CASE WHEN #temp1.messageType = '700W' then #temp1.Received else 0 end) as '700W',
SUM(CASE WHEN #temp1.messageType = '701' then #temp1.Received else 0 end) as '701',
SUM(CASE WHEN #temp1.messageType = '701W' then #temp1.Received else 0 end) as '701W'
from #temp1
Mit Hilfe einer Antwort, die ich dies war in der Lage zu verkürzen, wie folgt:
SELECT *
FROM (
select a.New_MessageTypeCode
from New_marketmessagein as a
WHERE CreatedOn between '2016-7-20 04:00' and '2016-7-21 04:00'
) AS SRC
PIVOT (COUNT(New_MessageTypeCode) FOR New_MessageTypeCode IN ([014R], [101], [101P], [101R], [102], [102P], [102R], [105],
[105L], [106D], [106E], [110], [111], [111A], [111L], [111R], [112], [112R], [112W], [114], [115], [115R], [116], [116A],
[116N], [116R],[117D],[117R], [122], [122R], [130D], [130R], [131], [137R], [261], [300], [300S], [300W], [301], [301N],
[303R], [305], [306], [306W], [307], [307W], [308], [310], [310W], [311], [320], [320W], [321], [330], [331], [332], [332W],
[341],[342], [352R], [591], [594], [595], [596], [597], [598], [601], [602], [700], [700W], [701], [701W])) As test
ich versuche jetzt, einen SQL-Server-Job mit Transact-SQL einrichten, die diese jeden Tag in einer angehängten cSV-Datei per E-Mail wie folgt:
DECLARE @query_attachment_filename VARCHAR(100) = 'Reconciliation-Count-Ending-' + CONVERT(VARCHAR(10), GETDATE(), 112) + '.csv';
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'support',
@recipients = '[email protected];[email protected]',
@subject = 'Reconciliation Count',
@query = N'SET ANSI_WARNINGS OFF;SET NOCOUNT ON;SELECT *
FROM (
select a.New_MessageTypeCode
from New_marketmessagein as a
WHERE CreatedOn between DATEADD(DAY, –1, GETDATE()) and GETDATE()
) AS SRC
PIVOT (COUNT(New_MessageTypeCode) FOR New_MessageTypeCode IN ([014R], [101], [101P], [101R], [102], [102P], [102R], [105],
[105L], [106D], [106E], [110], [111], [111A], [111L], [111R], [112], [112R], [112W], [114], [115], [115R], [116], [116A],
[116N], [116R],[117D],[117R], [122], [122R], [130D], [130R], [131], [137R], [261], [300], [300S], [300W], [301], [301N],
[303R], [305], [306], [306W], [307], [307W], [308], [310], [310W], [311], [320], [320W], [321], [330], [331], [332], [332W],
[341],[342], [352R], [591], [594], [595], [596], [597], [598], [601], [602], [700], [700W], [701], [701W])) As test ;',
@attach_query_result_as_file = 1,
@query_attachment_filename = @query_attachment_filename,
@query_result_header =0,
@query_result_separator = ' '
Obwohl ich den Abfrageabschnitt eines zuvor ausgeführten Jobs ersetzt habe, tritt dieser Fehler aufgrund einer Fehlerformatierungsabfrage auf. Fehle ich hier etwas?
Warum führen Sie die Prozedur nicht vom Job aus, anstatt den Code zu kopieren? – Luaan