sql语句的逻辑问题:有一a表,里面有一字段tablename,需要以tablename为再次选择的表进行查询 50

sql语句的逻辑问题:有一a表以及多张其他表,a表中存有字段tablename和applyid,需要以tablename和applyid为条件再次选择其他表进行查询获取记... sql语句的逻辑问题:有一a表以及多张其他表,a表中存有字段tablename和applyid,需要以tablename和applyid为条件再次选择其他表进行查询 获取记录
使用了存储过程如下,获取时不符合需求,不能一下子获取所有a表对应其他表的信息,每次需要指定其他表表名,如何实现根据a表数据获取所有其他表相关记录。 描述不清楚请追问
if (exists (select * from sys.objects where name = 'ListApply'))
drop proc ListApply
go
create proc ListApply
(@tablename nvarchar(50)
)
as
begin--定义一个 ifuchuan变量
declare @strsql nvarchar(500) -- 赋值给strsql countNum为 别名 记录数
set @strsql = 'select * from '+@tablename +' where ID in (SELECT applyid FROM ListOfApply)' --执行

print @strsql
exec(@strsql)
return
end

exec ListApply
@tablename='CXYD_Apply'
展开
 我来答
智者总要千虑
高粉答主

2018-01-08 · 说的都是干货,快来关注
知道顶级答主
回答量:7.9万
采纳率:88%
帮助的人:1.3亿
展开全部
1.表名尽量不要用TABLE,这是保留字,假设用TABLENAME。
2.字段名不要用A,容易与于后面表别名混淆。假设为FILEDA吧。
3.更新表,要有条件,一般为关键字相同,设置你的表TABLENAME中为CELLID吧。
则有:
update tablename set fielda=fieldnew from
(select cellId, fieldnew=houseBigness*hotTime/(select sum(houseBigness*hotTime) from HotOnline.dbo.H_UsrV b where b.cellId=a.cellId) from HotOnline.dbo.H_UsrV a ) c,
tablename where tablename.cellid=c.cellid

当然,如果还没有创建TABLENAME表,可以直接创建,这样可以不用关键字段
select cellId, fieldA=houseBigness*hotTime/(select sum(houseBigness*hotTime) INTO TABLENAME from HotOnline.dbo.H_UsrV b where b.cellId=a.cellId) from HotOnline.dbo.H_UsrV a

但是,如果已建立了表A,并且表A是空的,也可以直接追加到表A中,这样需要知道TABLENAME的表结构,如TABLENAME为CELLID和FIELDA两个字段,那么这样将结果插入表TABLENAME中
INSERT INTO TABLENAME select cellId, fieldA=houseBigness*hotTime/(select sum(houseBigness*hotTime) INTO TABLENAME from HotOnline.dbo.H_UsrV b where b.cellId=a.cellId) from HotOnline.dbo.H_UsrV a
追问
谢谢你的回答,不过好像跟我的问题不匹配,你没有理解我的意思吧,有一a表以及多张其他表,a表中存有字段tablename和applyid,需要以tablename和applyid为条件再次选择其他表进行查询 获取记录
新宇笑
2018-01-08 · TA获得超过906个赞
知道小有建树答主
回答量:680
采纳率:46%
帮助的人:104万
展开全部
什么问题?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式