关于相同数据合并~~

大神们!!!!!!怎么能把卡类类型,如图(金卡)合并以及相关的积分,积分损失金额,费用等数字合并。
这是查询语句declare  @开始时间__datetime datetime,@结束时间__datetime datetime,@供应商编码 nvarchar(20),@卡类型 nvarchar(20),@机构 nvarchar(20)
set @开始时间__datetime='${sdate}'
set @结束时间__datetime='${edate}'
set @供应商编码='${gys}'
set @卡类型=''
set @机构='${jg}'
select a.c_amount as c_amount ,DATEPART(yy,a.c_dt)*100 + DATEPART(mm,a.c_dt)  AS mm,a.c_fee_class ,
                case when a.c_fee_name='白金卡损失'then '白金卡' when a.c_fee_name='金卡损失' then '金卡' else '天美卡' end as c_cardname,
                case when len(a.c_id)=14 then SUBSTRING(a.c_id,3,5) else SUBSTRING(a.c_id,4,5) end as c_provider
                into #a
                from tb_o_feeg a(nolock)
                where EXISTS(SELECT 1 FROM tb_o_fee(nolock) WHERE c_id=a.c_id AND c_status='已审核' )
                and a.c_fee_class = '会员积分损失'
                and ( @开始时间__datetime is null or  datediff(day,@开始时间__datetime,a.c_dt )>=0)
            and ( @结束时间__datetime is null or  datediff(day,@结束时间__datetime,a.c_dt)<=0)
        and (@供应商编码 is null or @供应商编码='' or case when len(a.c_id)=14 then SUBSTRING(a.c_id,3,5) else SUBSTRING(a.c_id,4,5) end=@供应商编码)
                AND (@卡类型 is null or @卡类型='' OR CHARINDEX(@卡类型,a.c_fee_name)=0 )

SELECT SUM(c_amount) AS c_amount ,mm,c_cardname, c_provider INTO #b FROM #a GROUP BY mm,c_cardname, c_provider
SELECT a.c_store_id as 机构,a.c_provider as 供应商编码,
b.c_name as 供应商名称,
a.c_cardname as 卡类型,
DATEPART(yy,a.c_datetime) *100+ DATEPART(mm,a.c_datetime)   mm,
SUM(a.c_amount_jf_sg) AS 积分,
cast(ROUND(SUM(a.c_amount_jf_sg)*0.01,2) as decimal(9,2)) AS 积分损失金额
INTO #c
from        tb_provider_score_fee a(nolock)
join tb_partner b(nolock) on a.c_provider = b.c_no
WHERE
                 ( @供应商编码 is null or @供应商编码='' or  a.c_provider=@供应商编码)
                and ( @卡类型 is null or @卡类型='' or  a.c_cardname=@卡类型)
            and  (@开始时间__datetime is null or datediff(day,@开始时间__datetime,a.c_datetime)>=0)
                and  (@结束时间__datetime is null or datediff(day,@结束时间__datetime,a.c_datetime)<=0)

GROUP BY a.c_store_id,a.c_provider,a.c_cardname,b.c_name,DATEPART(yy,a.c_datetime) *100+ DATEPART(mm,a.c_datetime)
order by a.c_store_id,a.c_provider,DATEPART(yy,a.c_datetime) *100+ DATEPART(mm,a.c_datetime),a.c_cardname
/*----++++*/
SELECT #c.机构 as 机构,#c.供应商编码 as 供应商编码,
#c.供应商名称 as 供应商名称,
#c.卡类型 as 卡类型 ,
#c.mm AS 日期,
cast(#c.积分 as decimal(9,2) ) as 积分,
#c.积分损失金额 as 积分损失金额,
isnull(#b.c_amount,0) as 费用,
cast(#c.积分损失金额-isnull(#b.c_amount,0) as decimal(9,2) ) as 差额
FROM #c
LEFT JOIN #b ON #c.供应商编码= #b.c_provider AND #c.卡类型=#b.c_cardname AND #c.mm=#b.mm
where  ( @机构 is null or @机构='8' or  #c.机构=@机构)
ORDER BY #c.机构,#c.供应商编码,#c.mm,#c.卡类型
编辑于 2017-7-10 15:46  
FineReportbobo2468 发布于 2017-7-5 11:49
悬赏:2 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
恍1发布于2017-7-5 11:49(编辑于 2023-9-6 09:34)
555
最佳回答
0
axing发布于2017-7-5 11:57(编辑于 2023-9-6 09:34)
555
最佳回答
0
yiyemeiying发布于2017-7-5 12:08(编辑于 2023-9-6 09:34)
555
最佳回答
0
xyq242648发布于2017-7-5 13:41(编辑于 2023-9-6 09:34)
555
最佳回答
0
lxin2286发布于2017-7-5 16:47(编辑于 2023-9-6 09:34)
555
  • 0关注人数
  • 522浏览人数
  • 最后回答于:2017-7-5 16:47
    活动推荐 更多
    热门课程 更多
    返回顶部