好贷网好贷款

sql 查询问题 急急急急急急急急急急急急急 0

发布时间:2016-12-5 0:16:05 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"sql 查询问题 急急急急急急急急急急急急急 0",主要涉及到sql 查询问题 急急急急急急急急急急急急急 0方面的内容,对于sql 查询问题 急急急急急急急急急急急急急 0感兴趣的同学可以参考一下。

fund表 ID     accountid      支出资金      收入资金 1          10            99         null 2          11            99         null 3          12            null          80 account表 accountid      accountnum  10              中国银行          11              人民银行      12                现金  ...                ... 显示的效果 ID  accountid    支出资金   收入资金  中国银行  人民银行  现金   ......  1       10             99       null       1     0         0   ......     2       11             99       null       0     1         0   ......    3       12             null     80         0     0         1   ...... . 总计                    198        80       99    99        80    有2个表,一个是 account, fund,  accountid是关联的/ 我要显示的效果是   accountnum 字段横这排。  现金,中国银行,其他 等等。 下面的 0和1 的意思就是   fund.accountid  =account.accountid 就显示问1, 不等于就显示为 0。 Declare @SQL varchar(8000) select @SQL='' select @[email protected]+','+quotename(accountnum)+'=(case account.AccountID when '+cast(AccountID as varchar(10))+' then ''√'' else ''  '' end )' from Account order by AccountID desc exec('select  f.inamount 收入资金, f.outamount 支出资金 [email protected]+' from  account ,fund f, project where account.accountid=f.accountid') union .....  这里怎么连接 总计 下面的一排

怎么问了这么多地方? create table Account(ID int identity(1,1),accountid int,支出资金 int,收入资金 int) insert Account  select 10,99,null union all  select 11,99,null union all  select 12,null,80 create table fund(accountid int,accountnum nvarchar(100)) insert fund select 10,N'中国银行' union all  select 11,N'人民银行' union all  select 12,N'现金'  Declare @SQL nvarchar(4000),@sql2 nvarchar(1000),@sql3 nvarchar(1000)  select @SQL='',@sql2='',@sql3='' select @[email protected]+', case accountnum when N'+quotename(accountnum,'''')+' then 1 else 0 end ['+accountnum+'] ' from fund select @[email protected]+',B.'+accountnum from fund select @[email protected]+N',sum(case accountid when '+convert(varchar,accountid)+N' then isnull(支出资金,0)+isnull(收入资金,0) else 0 end)' from fund set @sql3=N'select N''总计'',null,sum(支出资金),sum(收入资金),'+stuff(@sql3,1,1,'')+' from Account' select @SQL=N' select convert(varchar(10),A.ID),A.accountid,A.支出资金,A.收入资金,'+stuff(@SQL2,1,1,'')+N' from Account A join (select *,'+stuff(@SQL,1,1,'')+N' from fund) B on A.accountid=B.accountid  union all [email protected]+' ' exec(@SQL) drop table Account drop table fund /*            accountid   支出资金        收入资金        中国银行        人民银行        现金 ---------- ----------- ----------- ----------- ----------- ----------- ----------- 1          10          99          NULL        1           0           0 2          11          99          NULL        0           1           0 3          12          NULL        80          0           0           1 总计         NULL        198         80          99          99          80 */

dc

上一篇:数据复制--使用远程分发者的中央发布服务器 100CSDN]
下一篇:数据复制 100CSDN]

相关文章

相关评论