求一条select写法 本帖最后由 aiaihe 于 2010-09-10 23:10:00 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 提个思路,楼主不妨弄点测试数据出来试试:用一张表保存Hj的计算方法,然后关联A表去替换A表中的Hj,然后再用动态SQL计算不过这种需求效率一定是不敢恭维的 太别扭了。顺序改一下就行了。select A1,(A11+A12+...+A20) as A2,A3,..A19,A21,...A34,(A21+...A30)*0.5,A36,...,A50,(A1+...A10) as Hj1,(A31+..+A40+100) as A20,...from a某字段依赖其他字段,就先把其他字段列出来,然后根据你的要求进行设置就行了。 假如:当A2的值是一个运算值时如(A2=Hj2*0.6) hj2就影响到到hj1的结果了。 假如:当A2的值是一个运算值时如(A2=Hj2*0.6) A20的值是一个运算值时如(A20=Hj4+100) A35=Hj3*0.5hj1里的a2, 取值需hj2hj2里的a20,取值需hj4hj4里的a35,取值需hj3最后列的顺序是 ...(其他列).. hj3,a35,hj4,a20,hj2,a2,hj1 --这里要是有循环了就完了select a1,a2.....a50,hj1,hj2,hj3,hj4,hj5 from ( select a1,a3......a50, --这里面没有a35,a20,a2 hj3 = (a21+a22+...a30), a35 = (Hj3*0.5), hj4 = (a31+a32+...a40), a20 = (hj4+100), hj2 = (a11+a12+...a20), a2 = (hj2*0.6) , hj1 = (a1+a2+...a10), hj5 = (a41+a42...a50)) 工资表中的某字段(由用户确定那个字段,要动态SQL)是公式运算的。公式是由表中其他字段或其他字段的合计构成。要选出表中各字段和各合计值。如何写这"select" 你这样做用语句来算效率会很低。你为什么用用程序来处理。还有你的公式可能会变化。例如,缴费的保险基数比例,每年8月份都会调整。那你怎么办改sql语句。而且这样反复查询和计算对数据库也造成负担。我们之前做的工资模块是用程序来处理。数据库只要求记录数据就可以。 理一下逻辑A2=(A11+A12+A13+A14+...+A20)*0.6A20=(A31+A32+A33+A34+...+A40)+100A35=(A21+A22+A23+A24+...+A30)*0.5现在可以先求A35,接着A20,A2update 表A set A35=(A21+A22+A23+A24+...+A30)*0.5 update 表A set A20=(A31+A32+A33+A34+...+A40)+100 update 表A set A35=(A21+A22+A23+A24+...+A30)*0.5 update 表A set Hj1=(A1+A2+A3+...+A10) update 表A set Hj2=(A11+A12+A13+A14+...+A20).....不知道是不是你想要的我正在使用《Csdn收音机》第一时间获取最新动态! to :cheneyfeng3在程序中如何处理,给个思路或cb代码 写程序方便变了不还是要改写程序? 你写个存储过程 直接抛出结果如果需求变 了修改下过程中SQL 不是很简单? T-SQL查询和设计的问题!最终显示成表格样子。 在线等待,请高手批点! 请问时间段问题!请牛人支招 update 更新表中字段的值,语句如下。。 帮忙解决下 记事本里有很多邮箱地址,怎样可以挑出特定的邮箱。 sql server 创建函数,急求 讨论,海量数据查询、统计性能优化算法! 谁能讲一下全文索引及其用法??谢谢 jsp中如何写jdbc-odbc桥连接sql server6.5的代码,在线等待!急!!! 关于服务管理器,请教大牛 请教大牛~关于服务器端口
太别扭了。顺序改一下就行了。select A1,(A11+A12+...+A20) as A2,A3,..A19,A21,...A34,(A21+...A30)*0.5,A36,...,A50,(A1+...A10) as Hj1,(A31+..+A40+100) as A20,...
from a某字段依赖其他字段,就先把其他字段列出来,然后根据你的要求进行设置就行了。
hj2就影响到到hj1的结果了。
A20的值是一个运算值时如(A20=Hj4+100)
A35=Hj3*0.5hj1里的a2, 取值需hj2
hj2里的a20,取值需hj4
hj4里的a35,取值需hj3最后列的顺序是 ...(其他列).. hj3,a35,hj4,a20,hj2,a2,hj1 --这里要是有循环了就完了select a1,a2.....a50,hj1,hj2,hj3,hj4,hj5 from (
select a1,a3......a50, --这里面没有a35,a20,a2
hj3 = (a21+a22+...a30),
a35 = (Hj3*0.5),
hj4 = (a31+a32+...a40),
a20 = (hj4+100),
hj2 = (a11+a12+...a20),
a2 = (hj2*0.6) ,
hj1 = (a1+a2+...a10),
hj5 = (a41+a42...a50))
工资表中的某字段(由用户确定那个字段,要动态SQL)是公式运算的。公式是由表中其他字段或其他字段的合计构成。要选出表中各字段和各合计值。如何写这"select"
A2=(A11+A12+A13+A14+...+A20)*0.6
A20=(A31+A32+A33+A34+...+A40)+100
A35=(A21+A22+A23+A24+...+A30)*0.5现在可以先求A35,接着A20,A2
update 表A set A35=(A21+A22+A23+A24+...+A30)*0.5
update 表A set A20=(A31+A32+A33+A34+...+A40)+100
update 表A set A35=(A21+A22+A23+A24+...+A30)*0.5
update 表A set Hj1=(A1+A2+A3+...+A10)
update 表A set Hj2=(A11+A12+A13+A14+...+A20)
.....
不知道是不是你想要的我正在使用《Csdn收音机》第一时间获取最新动态!
在程序中如何处理,给个思路或cb代码