次のように私は、ストアドプロシージャを持っている:有効な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
を私は次のようにこれを短縮することができた答えの助けを借りて:
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
私は今、次のように添付csvファイルでこの日常をメールでお知らせいたしますのTransact SQLを使用して、SQLサーバーのジョブを設定しようとしています:
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 = ' '
以前に動作していたジョブのクエリセクションを置き換えましたが、これはエラー形式のクエリのためにエラーが発生していますが、ここで何か不足していますか?
なぜコードをコピーするのではなく、ジョブからプロシージャを実行しないのですか? – Luaan