try:declare @pid varchar(10), @pname varchar(100),@summ money,@payed money,@monthplan money,@monthless money,@payfor money,@sum money set @pid='总计' set @pname='总计' select @summ=(select sum(summ) from money) select @payed=(select sum(payed) from money) select @monthplan=(select sum(monthplan) from money) select @monthless=(select sum(monthless) from money) select @payfor=(select sum(payfor) from money) --select @sum=(select sum(payed)from money where money.pid=project.pid) select * from (select pj.pid ,pj.pname ,mn.summ ,mn.payed,mn.monthplan,mn.monthless,mn.payfor from project as pj left join money as mn on pj.pid=mn.pid union select pje.pid ,pje.pname,pje.summ ,sum(mn.payed)as payed,pje.monthplan,pje.monthless,pje.payfor from money as mn,project as pj left join pje on pj.bid=pje.bid where mn.pid=pj.pid group by pje.pid ,pje.pname,pje.summ ,pje.payed,pje.monthplan,pje.monthless,pje.payfor union select @pid as pid,@pname as pname,@summ as summ,@payed as payed,@monthplan as monthplan,@monthless as monthless,@payfor as payfor ) t order by case when pid like '%总计%' then 1 else 0 end GO
不好意思,引用你的,没注意看. declare @pid varchar(10), @pname varchar(100),@summ money,@payed money,@monthplan money,@monthless money,@payfor money,@sum money set @pid='总计' set @pname='' select @summ=(select sum(summ) from money) select @payed=(select sum(payed) from money) select @monthplan=(select sum(monthplan) from money) select @monthless=(select sum(monthless) from money) select @payfor=(select sum(payfor) from money) --select @sum=(select sum(payed)from money where money.pid=project.pid) select * from (select pj.pid ,pj.pname ,mn.summ ,mn.payed,mn.monthplan,mn.monthless,mn.payfor from project as pj left join money as mn on pj.pid=mn.pid union select pje.pid ,pje.pname,pje.summ ,sum(mn.payed)as payed,pje.monthplan,pje.monthless,pje.payfor from money as mn,project as pj left join pje on pj.bid=pje.bid where mn.pid=pj.pid group by pje.pid ,pje.pname,pje.summ ,pje.payed,pje.monthplan,pje.monthless,pje.payfor union select @pid as pid,@pname as pname,@summ as summ,@payed as payed,@monthplan as monthplan,@monthless as monthless,@payfor as payfor ) t order by case when pid like '%总计%' then 1 else 0 end GO
set @pid='总计'
set @pname='总计'
select @summ=(select sum(summ) from money)
select @payed=(select sum(payed) from money)
select @monthplan=(select sum(monthplan) from money)
select @monthless=(select sum(monthless) from money)
select @payfor=(select sum(payfor) from money)
--select @sum=(select sum(payed)from money where money.pid=project.pid)
select * from
(select pj.pid ,pj.pname ,mn.summ ,mn.payed,mn.monthplan,mn.monthless,mn.payfor from project as pj left join money as mn on pj.pid=mn.pid
union
select pje.pid ,pje.pname,pje.summ ,sum(mn.payed)as payed,pje.monthplan,pje.monthless,pje.payfor from money as mn,project as pj left join pje on pj.bid=pje.bid where mn.pid=pj.pid group by pje.pid ,pje.pname,pje.summ ,pje.payed,pje.monthplan,pje.monthless,pje.payfor
union
select @pid as pid,@pname as pname,@summ as summ,@payed as payed,@monthplan as monthplan,@monthless as monthless,@payfor as payfor ) t
order by case when pid like '%总计%' then 1 else 0 end
GO
declare @pid varchar(10), @pname varchar(100),@summ money,@payed money,@monthplan money,@monthless money,@payfor money,@sum money
set @pid='总计'
set @pname=''
select @summ=(select sum(summ) from money)
select @payed=(select sum(payed) from money)
select @monthplan=(select sum(monthplan) from money)
select @monthless=(select sum(monthless) from money)
select @payfor=(select sum(payfor) from money)
--select @sum=(select sum(payed)from money where money.pid=project.pid)
select * from
(select pj.pid ,pj.pname ,mn.summ ,mn.payed,mn.monthplan,mn.monthless,mn.payfor from project as pj left join money as mn on pj.pid=mn.pid
union
select pje.pid ,pje.pname,pje.summ ,sum(mn.payed)as payed,pje.monthplan,pje.monthless,pje.payfor from money as mn,project as pj left join pje on pj.bid=pje.bid where mn.pid=pj.pid group by pje.pid ,pje.pname,pje.summ ,pje.payed,pje.monthplan,pje.monthless,pje.payfor
union
select @pid as pid,@pname as pname,@summ as summ,@payed as payed,@monthplan as monthplan,@monthless as monthless,@payfor as payfor ) t
order by case when pid like '%总计%' then 1 else 0 end
GO