日期:2014-05-18 浏览次数:20832 次
create table tb(col1 varchar(1),col2 decimal(10,0))
insert into tb select 'A',1000
insert into tb select 'A',200
insert into tb select 'B',800
drop FUNCTION dbo.f_str
CREATE FUNCTION dbo.f_str(@col1 varchar(10))
RETURNS varchar(100)
AS
BEGIN
DECLARE @re varchar(100)
SET @re=''
SELECT @re=@re+'+'+CAST(col2 as varchar)
FROM tb
WHERE col1=@col1
RETURN(STUFF(@re,1,1,'')+'=')
END
select col1,dbo.f_str(col1)+ltrim(sum(col2)) as hb,count(*) as [count]
from tb group by col1
------解决方案--------------------
select count(sjzb.SJZB),sum(t1.htzj),sum(t2.SSZJ)
from sjzb,(select count(*) as count1,sum(htzj) as htzj from SSMC group SJBH),(select count(*) as count2,sum(SSZJ) as SSZJ from JSSJ group SJBH)
where sjzb.SJZT='出具审计报告' and sjzb.sjbh=t1.sjbh and t1.sjbh.t2.sjbh and t1.count1=t2.count2
------解决方案--------------------
只能做到这步了
select count(*), sum(htzj), sum(sszj) from (select sjbh, htzj, sszj from sjzb where sjbh in (select a.sjbh from (select SJBH, count(sjbh) as sjbhcount from SSMC group by SJBH union select SJBH, -1 * count(sjbh) as sjbhcount from JSSJ group by SJBH) as a inner join sjzb s on a.sjbh = s.sjbh where s.SJZT = '出具审计报告' group by a.sjbh having sum(sjbhcount) = 0 )) b
------解决方案--------------------
--1、总表数据(SJZB)
declare @SJZB table (SJBH varchar(12),SJXS varchar(4),HTZJ decimal(18,2),SSZJ decimal(18,2),SJZT varchar(15))
insert into @SJZB values('NS-2007-001','結算',490948.23,665614.42,'出具審計報告')
insert into @SJZB values('NS-2007-002','決算',327298.82,443742.88,'出具審計報告')
insert into @SJZB values('NS-2007-003','預算',163649.41,221871.54,'審計結果確認')
insert into @SJZB values('NS-2007-004','結算',163649.41,221871.54,'出具審計報告')
insert into @SJZB values('NS-2007-005','結算',163649.41,221871.54,'出具審計報告')
select * from @SJZB
--2、送审数据(SSMC)
declare @SSMC table (id int,SJBH varchar(12),HTZJ decimal(18,2),SSZJ decimal(18,2))
insert into @SSMC values(1,'NS-2007-001',163649.4