数据源不确定的SQL语句如何写?

tszsc 2012-01-13 11:27:09
表fitem结构及数据如下:
citem_class,citem_name,ctable
"99","成本对象","fitemss99"
"00","在建工程","fitemss00"
.....
其中,citem_class为项目大类编号,ctable为项目表的名称(不固定),例如citem_class为‘99’的大类在fitemss99中存储数据如下:
citemcode,citemname
"01","磷酸二钠片"
"02","盐酸钠片"
"03","复方丹参注射液"
.....
想实现如下效果:
citem_class,citem_name,citemcode,citemname
"99","成本对象","01","磷酸二钠片"
"99","成本对象","02","盐酸钠片"
"99","成本对象","03","复方丹参注射液"
"00","在建工程","01",….
……
SQL语句如何写?
...全文
170 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
可乐AND爆米花 2012-01-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 tszsc 的回复:]
引用 1 楼 maco_wang 的回复:
SQL code

declare @a table (citem_class varchar(4),citem_name varchar(10),ctable varchar(11))
insert into @a
select '"99"','"成本对象"','"fitemss99"' union all
select '"00"','"……
[/Quote]
fitemss99这个在上面不是内容吗? 怎么又成了表了!
tszsc 2012-01-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 maco_wang 的回复:]
SQL code

declare @a table (citem_class varchar(4),citem_name varchar(10),ctable varchar(11))
insert into @a
select '"99"','"成本对象"','"fitemss99"' union all
select '"00"','"在建工程"','"fitemss00"'

……
[/Quote]
关键是,fitem表的记录数不固定,该表中的ctable字段存放的是"99"、"00"等为代码的项目大类在数据库中对应的表名称,例如99对应fitemss99表,该表的名称是有规律的,即fitemss+项目大类代码(99)。fitemss99表保存项目的具体信息。这些表是用友软件项目辅助核算中用到的。
虽然在程序代码中可以遍历fitem表读取对应的项目表名称再检索项目信息,但我想知道单纯利用SQL语句能否实现?
tszsc 2012-01-14
  • 打赏
  • 举报
回复
fitem表ctable字段保存的是表名(这当然构成了fitem表的内容),这个表在检索具体的项目信息时用到。
“成本对象”的项目信息保存到fitemss99表中(需要从中检索citemcode,citemname两个字段),“在建工程”的项目信息保存到fitemss00表中。
greency 2012-01-13
  • 打赏
  • 举报
回复
试试 start with connect by 递归 行不行 或者 左连接呢
叶子 2012-01-13
  • 打赏
  • 举报
回复

declare @a table (citem_class varchar(4),citem_name varchar(10),ctable varchar(11))
insert into @a
select '"99"','"成本对象"','"fitemss99"' union all
select '"00"','"在建工程"','"fitemss00"'

declare @b table (citemcode varchar(4),citemname varchar(16))
insert into @b
select '"01"','"磷酸二钠片"' union all
select '"02"','"盐酸钠片"' union all
select '"03"','"复方丹参注射液"'

select * from @a CROSS JOIN @b ORDER BY 1 DESC
/*
citem_class citem_name ctable citemcode citemname
----------- ---------- ----------- --------- ----------------
"99" "成本对象" "fitemss99" "01" "磷酸二钠片"
"99" "成本对象" "fitemss99" "02" "盐酸钠片"
"99" "成本对象" "fitemss99" "03" "复方丹参注射液"
"00" "在建工程" "fitemss00" "01" "磷酸二钠片"
"00" "在建工程" "fitemss00" "02" "盐酸钠片"
"00" "在建工程" "fitemss00" "03" "复方丹参注射液"
*/
勿勿 2012-01-13
  • 打赏
  • 举报
回复
join 两表关联。

34,590

社区成员

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

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