0
我有一个报告,我每个月运行,下面是它的SQL脚本。我目前的问题是我必须以文本格式运行sql脚本,然后将结果集保存到制表符分隔的文件中,然后保存为excel。现在在Excel中,即使它运行的行也能得到一切。我想把所有的东西都放在一个结果集中。请帮忙。谢谢。TSql Report - sql server 2008
declare @xmid varchar(16)
declare @locationdba varchar(100)
declare @month varchar(2)
declare @year varchar(4)
set @month = '05'
set @year = '2011'
select distinct xmid,LOCATIONDBA into #tmpMIDS
from tblmerchants a
join tblmerchantapplications b on a.merchantid = b.merchantid
where locationdba like 'farmers furniture%'
SELECT 'TOTAL FOR ALL STORES'
SELECT 'INTERCHANGE : ALL STORES'
select ledgercode,substring(cast(ledgercode as varchar),5,3) FeeClass, mrev.description, sum(cnt) cnt, sum(volume) volume, MIC.RATE,MIC.PERITEM,
--case when substring(cast(ledgercode as varchar),4,1) = 1 then 0.000950 else 0.000925 end Assessments,
TotalDisc = sum(volume)* MIC.RATE --+ sum(volume) * case when substring(cast(ledgercode as varchar),4,1) = 1 then 0.000950 else 0.000925 end,
,totalPerItem = sum(cnt) * MIC.PERITEM ,
--TotalAmt = round(sum(TotalAmount),2,1)
TotalAmt = sum(TotalAmount)
from monthendrevshare mrev
join dbo.MonthendInterchange mIC on mrev.ledgercode = (900000000 + (mic.CardType * 100000) + (ICCode * 100) + 1) and enddate is null
where ledgercode > 900000 and xmid in (select xmid from #tmpMIDS)
and entrymonth = @month and entryyear = @year AND ROOTPORTFOLIOACCOUNTNUMBER = '1'
group by ledgercode,mrev.description, MIC.RATE,MIC.PERITEM
having sum(volume) > 0
order by volume desc
SELECT 'CREDIT INTERCHANGE : ALL STORES'
select ledgercode, substring(cast(ledgercode as varchar),5,3) FeeClass, mrev.description, sum(cnt) cnt, sum(volume) volume, MIC.RATE,MIC.PERITEM,
--case when substring(cast(ledgercode as varchar),4,1) = 1 then 0.000950 else 0.000925 end Assessments,
TotalDisc = sum(volume)* MIC.RATE --+ sum(volume) * case when substring(cast(ledgercode as varchar),4,1) = 1 then 0.000950 else 0.000925 end,
,totalPerItem = sum(cnt) * MIC.PERITEM,
--TotalAmt = round(sum(TotalAmount),2,1)
TotalAmt = sum(TotalAmount)
from monthendrevshare mrev
join dbo.MonthendInterchange mIC on mrev.ledgercode = (900000000 + (mic.CardType * 100000) + (ICCode * 100) + 1) and enddate is null
where ledgercode > 900000 and xmid in (select xmid from #tmpMIDS)
and entrymonth = @month and entryyear = @year AND ROOTPORTFOLIOACCOUNTNUMBER = '1'
group by ledgercode,mrev.description, MIC.RATE,MIC.PERITEM
having sum(volume) <= 0
order by volume
SELECT 'AUTHORIZATIONS : ALL STORES'
select ledgercode, mrev.description, sum(cnt) cnt, AVG(PERITEM) PERITEM, SUM(TOTALAMOUNT) TOTAL
from monthendrevshare mrev
where ledgergroup = 11
and ledgercode not in (30,102)
and xmid in (select xmid from #tmpMIDS)
and entrymonth = @month and entryyear = @year AND ROOTPORTFOLIOACCOUNTNUMBER = '1'
group by ledgercode,mrev.description
having SUM(TOTALAMOUNT) > 0
order by TOTAL desc
SELECT 'FEES : ALL STORES'
select ledgercode, mrev.description, sum(volume) Volume, sum(cnt) Count, AVG(RATE) RATE, AVG(PERITEM) PERITEM, SUM(TOTALAMOUNT) TOTAL
from monthendrevshare mrev
where (ledgergroup = 12 or ledgercode in (104,105,30,102,500,501,502,503,92,94))
and ledgercode not in (33,34,46,79,47,133,48,123)
and xmid in (select xmid from #tmpMIDS)
and entrymonth = @month and entryyear = @year AND ROOTPORTFOLIOACCOUNTNUMBER = '1'
group by ledgercode,mrev.description
having SUM(TOTALAMOUNT) > 0
order by TOTAL desc
DECLARE Merchant_Cursor CURSOR FOR
select xmid,locationdba
from #tmpMIDS
OPEN Merchant_Cursor
FETCH NEXT FROM Merchant_Cursor into @XMID, @locationdba
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT 'TOTAL FOR STORE : ' + @XMID +' : ' + @locationdba
SELECT 'INTERCHANGE FOR STORE : ' + @XMID +' : ' + @locationdba
select ledgercode,substring(cast(ledgercode as varchar),5,3) FeeClass, mrev.description, sum(cnt) cnt, sum(volume) volume, MIC.RATE,MIC.PERITEM,
--case when substring(cast(ledgercode as varchar),4,1) = 1 then 0.000950 else 0.000925 end Assessments,
TotalDisc = sum(volume)* MIC.RATE --+ sum(volume) * case when substring(cast(ledgercode as varchar),4,1) = 1 then 0.000950 else 0.000925 end,
,totalPerItem = sum(cnt) * MIC.PERITEM ,
--TotalAmt = round(sum(TotalAmount),2,1)
TotalAmt = sum(TotalAmount)
from monthendrevshare mrev
join dbo.MonthendInterchange mIC on mrev.ledgercode = (900000000 + (mic.CardType * 100000) + (ICCode * 100) + 1) and enddate is null
where ledgercode > 900000 and xmid = @xmid
and entrymonth = @month and entryyear = @year AND ROOTPORTFOLIOACCOUNTNUMBER = '1'
group by ledgercode,mrev.description, MIC.RATE,MIC.PERITEM
having sum(volume) > 0
order by volume desc
SELECT 'CREDIT INTERCHANGE FOR STORE : ' + @XMID +' : ' + @locationdba
select ledgercode, substring(cast(ledgercode as varchar),5,3) FeeClass, mrev.description, sum(cnt) cnt, sum(volume) volume, MIC.RATE,MIC.PERITEM,
--case when substring(cast(ledgercode as varchar),4,1) = 1 then 0.000950 else 0.000925 end Assessments,
TotalDisc = sum(volume)* MIC.RATE, --+ sum(volume) * case when substring(cast(ledgercode as varchar),4,1) = 1 then 0.000950 else 0.000925 end,
totalPerItem = sum(cnt) * MIC.PERITEM,
--TotalAmt = round(sum(TotalAmount),2,1)
TotalAmt = sum(TotalAmount)
from monthendrevshare mrev
join dbo.MonthendInterchange mIC on mrev.ledgercode = (900000000 + (mic.CardType * 100000) + (ICCode * 100) + 1) and enddate is null
where ledgercode > 900000 and xmid = @xmid
and entrymonth = @month and entryyear = @year AND ROOTPORTFOLIOACCOUNTNUMBER = '1'
group by ledgercode,mrev.description, MIC.RATE,MIC.PERITEM
having sum(volume) <= 0
order by volume
SELECT 'AUTHORIZATIONS FOR STORE : ' + @XMID +' : ' + @locationdba
select ledgercode, mrev.description, sum(cnt) cnt, AVG(PERITEM) PERITEM, SUM(TOTALAMOUNT) TOTAL
from monthendrevshare mrev
where ledgergroup = 11
and ledgercode not in (30,102)
and xmid = @xmid
and entrymonth = @month and entryyear = @year AND ROOTPORTFOLIOACCOUNTNUMBER = '1'
group by ledgercode,mrev.description
having SUM(TOTALAMOUNT) > 0
order by TOTAL desc
SELECT 'FEES FOR STORE : ' + @XMID +' : ' + @locationdba
select ledgercode, mrev.description, sum(volume) Volume, sum(cnt) Count, AVG(RATE) RATE, AVG(PERITEM) PERITEM, SUM(TOTALAMOUNT) TOTAL
from monthendrevshare mrev
where (ledgergroup = 12 or ledgercode in (104,105,30,102,500,501,502,503,92,94))
and ledgercode not in (33,34,46,79,47,133,48,123)
and xmid = @xmid
and entrymonth = @month and entryyear = @year AND ROOTPORTFOLIOACCOUNTNUMBER = '1'
group by ledgercode,mrev.description
having SUM(TOTALAMOUNT) > 0
order by TOTAL desc
FETCH NEXT FROM Merchant_Cursor into @XMID, @locationdba
END
CLOSE Merchant_Cursor
DEALLOCATE Merchant_Cursor
drop table #tmpMIDS
@闭门器 - 我不认为这应该被关闭,这只是一个措辞不佳的问题。 – JNK
你在SSMS中运行这个并复制和粘贴结果吗?如果你想要一个结果集,你应该编写一个返回一个结果集的查询。你不想要什么行? – JeffO
这将是很好的发表一些澄清的意见,而不是只是投票结束。 – JeffO