Code Bye

sql 问题 求来 万分感谢

 分不多了  ….
问题如下
A表
cpr_ID      总价
1               200
b表
ID            cpr_ID                      已收款    未收款         次数                      时间
1         1(A表的id)                100        100          第一次收费             9-23
2        1 (A表的id)               100        100         第二次次收费          9-27
现在这是一个表里的两条数据,  大致意思 就跟现在买东西 分期相似,
本人现在需要查询A表里的总价 并且 害的查询出 已收款 和未收款 ,sql能查出来,不过 查出来的是两条数据
本人现在需要 合成一条数据  相似如下
cpr_ID     总价     已收款      未收款                        次数
1               200       200              0                    第一次收费100:9-23,第二次收费100:9-27
本人试了好多方法,均不是本人想要的,还请各位指点一下 谢谢。
解决方案

50

大致这样,你试试。
with a 
as
(
select tab1.cpr_ID,tab1.总价,tab2.已收款,tab2.未收款,tab2.次数,tab2.时间 from  A表 tab1
join B表 tab2 on u.id=m.uid 
)
select a.cpr_ID,总价,sum(已收款) "已收款",sum(未收款)"未收款",(select 次数+"," from a STab1 where STab1.cpr_ID=a.cpr_ID for XML path(""))"次数" from a 
group by userid,总价

50

create table A (id int,n int)
insert into A values(1,200)
create table B (id int,a_id int,nin int,nout int,title nvarchar(50),ttime smalldatetime)
insert into B values(1,1,100,100,"第一次收款","2015-05-05")
insert into B values(2,1,100,100,"第二次收款","2016-09-09")
select ID,n as 总价,(select isnull(sum(nin),0) from B where a_id=A.id) as 已收,stuff((select ","+B.title+convert(char(10),b.ttime,120) from B where a_id=A.id for xml path("")),1,1,"") as 次数 from A
drop table A,B

未收的列,通过总数-已收


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明sql 问题 求来 万分感谢