You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

179 lines
15 KiB

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[proc_slabwiseRpt] Script Date: 9/27/2019 1:30:14 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE proc [dbo].[proc_slabwiseRpt]
(
@flag VARCHAR(10) = NULL
,@user VARCHAR(20) = NULL
,@fromDate VARCHAR(40) = NULL
,@toDate VARCHAR(40) = NULL
)
AS
IF @flag='rpt'
BEGIN
set @toDate = @toDate+' 23:59:59'
select
basedOn,
ReportType = flag,
sum([0-10000]) [0-10000],
sum([10001-25000]) [10001-25000],
sum([25001-50000]) [25001-50000],
sum([50001-100000]) [50001-100000],
sum([100001-200000]) [100001-200000],
sum([200001-300000]) [200001-300000],
sum([Above 300000]) [Above 300000]
into #temp
from
(
SELECT
'tAmt' basedOn,
'ak' flag,
case when tAmt BETWEEN '0' AND '10000' then count('x') else '0' end '0-10000' ,
case when tAmt BETWEEN '10001' AND '25000' then count('x') else '0' end '10001-25000' ,
case when tAmt BETWEEN '25001' AND '50000' then count('x') else '0' end '25001-50000' ,
case when tAmt BETWEEN '50001' AND '100000' then count('x') else '0' end '50001-100000' ,
case when tAmt BETWEEN '100001' AND '200000' then count('x') else '0' end '100001-200000' ,
case when tAmt BETWEEN '200001' AND '300000' then count('x') else '0' end '200001-300000' ,
case when tAmt > 300000 then count('x') else '0' end 'Above 300000'
FROM remitTran rt with(nolock)
WHERE pLocation in (177,137,225)
AND tranType = 'D'
AND createddate between @fromDate and @toDate
group by tAmt
UNION ALL
SELECT
'tAmt' basedOn,
'Ka' flag,
case when tAmt BETWEEN '0' AND '10000' then count('x') else '0' end '0-10000' ,
case when tAmt BETWEEN '10001' AND '25000' then count('x') else '0' end '10001-25000' ,
case when tAmt BETWEEN '25001' AND '50000' then count('x') else '0' end '25001-50000' ,
case when tAmt BETWEEN '50001' AND '100000' then count('x') else '0' end '50001-100000' ,
case when tAmt BETWEEN '100001' AND '200000' then count('x') else '0' end '100001-200000' ,
case when tAmt BETWEEN '200001' AND '300000' then count('x') else '0' end '200001-300000' ,
case when tAmt > 300000 then count('x') else '0' end 'Above 300000'
FROM remitTran rt with(nolock)
inner join agentMaster am with(nolock) on rt.sBranch = am.agentId
where am.agentLocation in (177,137,225)
AND tranType = 'D'
AND rt.createddate between @fromDate and @toDate
group by tAmt
UNION ALL
SELECT
'tAmt' basedOn,
'aa' flag,
case when tAmt BETWEEN '0' AND '10000' then count('x') else '0' end '0-10000' ,
case when tAmt BETWEEN '10001' AND '25000' then count('x') else '0' end '10001-25000' ,
case when tAmt BETWEEN '25001' AND '50000' then count('x') else '0' end '25001-50000' ,
case when tAmt BETWEEN '50001' AND '100000' then count('x') else '0' end '50001-100000' ,
case when tAmt BETWEEN '100001' AND '200000' then count('x') else '0' end '100001-200000' ,
case when tAmt BETWEEN '200001' AND '300000' then count('x') else '0' end '200001-300000' ,
case when tAmt > 300000 then count('x') else '0' end 'Above 300000'
FROM remitTran rt with(nolock)
inner join agentMaster am with(nolock) on rt.sBranch = am.agentId
where am.agentLocation not in (177,137,225)
and rt.pLocation not in (177,137,225)
AND tranType = 'D'
AND rt.createddate between @fromDate and @toDate
group by tAmt
union all
--cAmt basis
SELECT
'cAmt' basedOn,
'ak' flag,
case when cAmt BETWEEN '0' AND '10000' then count('x') else '0' end '0-10000' ,
case when cAmt BETWEEN '10001' AND '25000' then count('x') else '0' end '10001-25000' ,
case when cAmt BETWEEN '25001' AND '50000' then count('x') else '0' end '25001-50000' ,
case when cAmt BETWEEN '50001' AND '100000' then count('x') else '0' end '50001-100000' ,
case when cAmt BETWEEN '100001' AND '200000' then count('x') else '0' end '100001-200000' ,
case when cAmt BETWEEN '200001' AND '300000' then count('x') else '0' end '200001-300000' ,
case when cAmt > 300000 then count('x') else '0' end 'Above 300000'
FROM remitTran rt with(nolock)
WHERE pLocation in (177,137,225)
AND tranType = 'D'
AND createddate between @fromDate and @toDate
group by cAmt
UNION ALL
SELECT
'cAmt' basedOn,
'Ka' flag,
case when cAmt BETWEEN '0' AND '10000' then count('x') else '0' end '0-10000' ,
case when cAmt BETWEEN '10001' AND '25000' then count('x') else '0' end '10001-25000' ,
case when cAmt BETWEEN '25001' AND '50000' then count('x') else '0' end '25001-50000' ,
case when cAmt BETWEEN '50001' AND '100000' then count('x') else '0' end '50001-100000' ,
case when cAmt BETWEEN '100001' AND '200000' then count('x') else '0' end '100001-200000' ,
case when cAmt BETWEEN '200001' AND '300000' then count('x') else '0' end '200001-300000' ,
case when cAmt > 300000 then count('x') else '0' end 'Above 300000'
FROM remitTran rt with(nolock)
inner join agentMaster am with(nolock) on rt.sBranch = am.agentId
where am.agentLocation in (177,137,225)
AND tranType = 'D'
AND rt.createddate between @fromDate and @toDate
group by cAmt
UNION ALL
SELECT
'cAmt' basedOn,
'aa' flag,
case when cAmt BETWEEN '0' AND '10000' then count('x') else '0' end '0-10000' ,
case when cAmt BETWEEN '10001' AND '25000' then count('x') else '0' end '10001-25000' ,
case when cAmt BETWEEN '25001' AND '50000' then count('x') else '0' end '25001-50000' ,
case when cAmt BETWEEN '50001' AND '100000' then count('x') else '0' end '50001-100000' ,
case when cAmt BETWEEN '100001' AND '200000' then count('x') else '0' end '100001-200000' ,
case when cAmt BETWEEN '200001' AND '300000' then count('x') else '0' end '200001-300000' ,
case when cAmt > 300000 then count('x') else '0' end 'Above 300000'
FROM remitTran rt with(nolock)
inner join agentMaster am with(nolock) on rt.sBranch = am.agentId
where am.agentLocation not in (177,137,225)
and rt.pLocation not in (177,137,225)
AND tranType = 'D'
AND rt.createddate between @fromDate and @toDate
group by cAmt
)a group by basedOn,flag
SELECT
[Count Based On]= [Based On],
[Count Type] = [Report Type],
Slab,
[Transaction Count] = Orders
INTO #result
FROM
(
SELECT
case when basedOn ='tAmt' then 'Transaction Amount'
when basedOn = 'cAmt' then 'Collection Amount' end [Based On],
case when ReportType ='ak' then 'Agent To Kathmandu'
when ReportType = 'ka' then 'Kathmandu To Agent'
when ReportType = 'aa' then 'Agent To Agent' end [Report Type],
[0-10000], [10001-25000], [25001-50000], [50001-100000], [100001-200000], [200001-300000],[Above 300000]
FROM #temp) p
UNPIVOT
(Orders FOR Slab IN
([0-10000], [10001-25000], [25001-50000], [50001-100000], [100001-200000], [200001-300000],[Above 300000])
)AS unpvt;
select * from #result order by [Count Based On],[Count Type]
drop table #temp
drop table #result
SELECT '0' errorCode, 'Report has been prepared successfully.' msg, NULL id
SELECT 'Date Range' head,@fromDate+'-'+@toDate VALUE
SELECT 'Slab Wise Report' title
END
GO