假设有两张表:T_TABLE1 T_TABLE2
T_TABLE1;F_FIELD1
A
B
C
D
T_TABLE2;F_FIELD1
X
Y
Z
假设查询出来的结果的列表格式为:
A B C D
X
Y
Z
其中,A,B,C,D是T_TABLE1中的数据;X,Y,Z是T_TABLE2中的数据,上面的列表中的数据又是从其他表中合计的,哪位能否讲一下这样的查询在存储过程中应该怎么样实习?
...全文
426打赏收藏
这样的数据列表在存储过程中应该怎么样选择得到?
假设有两张表:T_TABLE1 T_TABLE2 T_TABLE1;F_FIELD1 A B C D T_TABLE2;F_FIELD1 X Y Z 假设查询出来的结果的列表格式为: ABCD X Y Z 其中,A,B,C,D是T_TABLE1中的数据;X,Y,Z是T_TABLE2中的数据,上面的列表中的数据又是从其他表中合计的,哪位能否讲一下这样的查询在存储过程中应该怎么样实习?
declare @sql varchar(8000)
set @sql = 'select 部门'
select @sql = @sql + ',sum(case 学历 when '''+学历+''' then 1 else 0 end) ['+学历+'的人数]'
from (select distinct 学历 from 你的表) a
eg2:
Select ZH,
sum(case when JYDM = '9999' then JYJE else 0 end) as 9999交易总金额,
sum(case when JYDM = '9998' then JYJE else 0 end) as 9998交易总金额,
sum(case when JYDM = '9995' then JYJE else 0 end) as 9995交易总金额
from yourTable group by ZH
OR:
declare @sql varchar(8000)
set @sql = 'select ZH,'
select @sql = @sql + 'sum(case JYDM when '''+JYDM+'''
then JYJE else 0 end) '+JYDM+'交易总金额,'
from (select distinct JYDM from 你的表) as a
select @sql = left(@sql,len(@sql)-1) + ' from 你的表'
--1.创建一个合并的函数
create function fmerg(@id int)
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str=@str+','+cast(pid as varchar) from 表A where id=@id
set @str=right(@str,len(@str)-1)
return(@str)
End
go
--调用自定义函数得到结果
select distinct id,dbo.fmerg(id) from 表A