这个sql 问题 怎么解决啊?

iamsoloist 2004-07-26 10:37:21
一个表的结构是
id projectName amount
1 第一个 2003
2 第二个 2004
3 第三个 2005

第二个表的结构是
id colName des type
1 projectName 项目名称 varchar(200)
1 amount 总额 int

我想输出这样的格式

projectname projectname_des amount amount_des
第一个 项目名称 2003 总额
第二个 项目名称 2004 总额。

请大家帮帮忙,看这个问题怎么解决。

我第二个表里存得就是对第一个表的字段说明。
如果有更好的解决方法就更好了,谢谢大家
...全文
125 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
iamsoloist 2004-07-26
  • 打赏
  • 举报
回复
to: notin(Not iN) 谢谢 ,是我表达能力有限吧,a.id与b.id是没有关系的。
谢谢楼主的朋友,你们的答案我都试过了。
zjcxc(邹建) 大哥的方法是可行的:)
chinaandys 2004-07-26
  • 打赏
  • 举报
回复
不太明白樓主的意思
iamsoloist 2004-07-26
  • 打赏
  • 举报
回复
to: zjcxc(邹建)
谢谢,按您说的解决了。真是服了您了,我现在跟人家说我会sql都觉得脸红啊。
notin 2004-07-26
  • 打赏
  • 举报
回复
刚才发的少些了一个AS
select a.projectname,b.des as projectname_des,a.amount,b.amount as amount_des
from tab1 inner join tab2 on a.id=b.id
notin 2004-07-26
  • 打赏
  • 举报
回复
select a.projectname,b.des as projectname_des,a.amount,b.amount
from tab1 inner join tab2 on a.id=b.id
zjcxc 元老 2004-07-26
  • 打赏
  • 举报
回复
--测试

--测试数据
create table ta(id int,projectName varchar(10),amount int)
insert ta select 1,'第一个',2003
union all select 2,'第二个',2004
union all select 3,'第三个',2005

create table tb(id int,colName sysname,des varchar(10),type varchar(20))
insert tb select 1,'projectName','项目名称','varchar(200)'
union all select 1,'amount' ,'总额' ,'int'
go

--如果字段名不是固定的,则用动态SQL语句
declare @s varchar(8000)
set @s=''
select @s=@s+',['+colName+'],['+colName+'_des]='''+des+''''
from tb
set @s=stuff(@s,1,1,'')
exec('select '+@s+' from ta')
go

--删除测试
drop table ta,tb

/*--测试结果

projectName projectName_des amount amount_des
----------- --------------- ----------- ----------
第一个 项目名称 2003 总额
第二个 项目名称 2004 总额
第三个 项目名称 2005 总额
--*/
zjcxc 元老 2004-07-26
  • 打赏
  • 举报
回复
--如果字段名不是固定的,则用动态SQL语句

declare @s varchar(8000)
set @s=''
select @s=@s+',['+colName+'],['+colName+'_des]='''+des+''''
from tb
set @s=stuff(@s,1,1,'')
exec('select '+@s+' from ta')
zjcxc 元老 2004-07-26
  • 打赏
  • 举报
回复
--查询
select projectname,projectname_des=b.des
,amount,amount_des=c.des
from ta a,tb b,tb c
where b.colName='projectName' and c.colName='amount'
menghun1355 2004-07-26
  • 打赏
  • 举报
回复
不太明白樓主的意思,輸出字段projectname_des和amount_des的值是怎麼來的,是固定這樣的嗎?
select projectname,'項目名稱' as projectname_des,amount,'總額' as amount_des
from table1


WangZWang 2004-07-26
  • 打赏
  • 举报
回复

SElect t.projectname,s.projectname,sum(t.amount) as amount,sum(s.amount) as amount_des
from table1 as t inner join table2 as s on t.id=s.id
group by t.projectname,s.projectname

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧