以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]SQL语句求助 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=186106) |
-- 作者:ajie5211 -- 发布时间:2023/4/6 15:42:00 -- [求助]SQL语句求助 数据库中有三个表 SEL ECT TOP (1000) FID,[FENTRYID],[FNUMBER] FR OM T_BAS_FLEXVALUESENTRY wh ere FENTRYID = 110242 sele ct FID,FFLEXNUMBER fr om t_bas_flexvalues sele ct * fro m t_bas_flexvaluesdetail wh ere FID = 102455 表t_bas_flexvaluesdetail的列由t_bas_flexvalues控制动态增加,现知道t_bas_flexvaluesdetail列FID的值102455,希望得到表T_BAS_FLEXVALUESENTRY中FNUMBER的值, 能不能整一个查询表,或是存储过程来实现? |
-- 作者:有点蓝 -- 发布时间:2023/4/6 15:53:00 -- 没看懂这3个表数据是怎么关联的 |
-- 作者:ajie5211 -- 发布时间:2023/4/6 16:05:00 -- t_bas_flexvaluesdetail的列FF100040,是表t_bas_flexvalues中FID为100040,FFLEXNUMBER列FF100040这一行控制的, t_bas_flexvaluesdetail列FID = 102455时,列FF100040 = 110242 对应的T_BAS_FLEXVALUESENTRY 中列FID = 100040,FENTRYID = 110242,此时可求出FNUMBER = ‘02000’ 比较麻烦的是,t_bas_flexvaluesdetail中我们用FID的值去查询时,有可能是列FF100040有值,也有可能是列FF100041有值,具体是哪一列有值,是表T_BAS_FLEXVALUESENTRY的FID对应t_bas_flexvalues的FID所对行FFLEXNUMBER中的列名。
|
-- 作者:有点蓝 -- 发布时间:2023/4/6 16:32:00 -- 这个没有办法使用sql处理,加载数据后使用代码遍历处理 |
-- 作者:ajie5211 -- 发布时间:2023/4/6 16:35:00 -- 用存储过程也不行么? |
-- 作者:有点蓝 -- 发布时间:2023/4/6 16:39:00 -- 应该可以,但是更麻烦,使用存储过程也一样要遍历逐行处理,并且要动态拼接sql来执行,效率不会比使用代码高 |
-- 作者:ajie5211 -- 发布时间:2023/4/7 13:12:00 -- 存储过程的完整写法见附件 以下内容只有回复后才可以浏览 [此贴子已经被作者于2023/4/7 13:12:37编辑过]
|
-- 作者:thz706 -- 发布时间:2023/4/7 13:31:00 -- 学习下 |
-- 作者:yuchunlnog -- 发布时间:2023/4/7 14:00:00 -- 看一眼 |
-- 作者:gweeo -- 发布时间:2023/4/7 15:59:00 -- 支持 |