Sql server 抽搐 总金额大于0的 按总说明订购 从Merchant_游标获取下一个到@XMID,@locationdba 结束 关闭光标 取消分配商户光标 下拉表#TMPMID
我不打算重写整个过程,但您可以使用以下方法: 1-使用Sql server 抽搐 总金额大于0的 按总说明订购 从Merchant_游标获取下一个到@XMID,@locationdba 结束 关闭光标 取消分配商户光标 下拉表#TMPMID,sql-server,Sql Server,我不打算重写整个过程,但您可以使用以下方法: 1-使用SET NOCOUNT ON禁用“xxx行受影响”消息 2-保持逻辑不变,但选择“结果”表,并在过程结束时选择“结果”的内容作为唯一输出。您不能像现在这样真正使用联合,因为您有不同的字段名。如果你需要结果集之间不同的字段名,那么你将永远无法以功能性的方式将它们合并到一个最终结果中。@Closers-我认为这不应该关闭,这只是一个措辞拙劣的问题。你是否在SSMS中运行此功能并复制和粘贴结果?如果需要一个结果集,那么应该编写一个返回一个结果集的查
SET NOCOUNT ON
禁用“xxx行受影响”消息
2-保持逻辑不变,但选择“结果”表,并在过程结束时选择“结果”的内容作为唯一输出。您不能像现在这样真正使用
联合
,因为您有不同的字段名。如果你需要结果集之间不同的字段名,那么你将永远无法以功能性的方式将它们合并到一个最终结果中。@Closers-我认为这不应该关闭,这只是一个措辞拙劣的问题。你是否在SSMS中运行此功能并复制和粘贴结果?如果需要一个结果集,那么应该编写一个返回一个结果集的查询。你不想要哪一行?发表一些评论来澄清一下,而不是投票结束,这会很好。
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