标题:求sql语句
只看楼主
lgp740401
Rank: 1
等 级:新手上路
帖 子:52
专家分:5
注 册:2008-5-18
结帖率:91.67%
已结贴  问题点数:20 回复次数:17 
求sql语句
我有一个表(Tb_工资姓名_b)如下:意思:我实发金额中包括了班内工资+班外工资,当chk班内=0(不在班内),实际班内工资=实发金额-数量*单价(不在班内的工资)
姓名    数量     单价    chk班内     班内金额     实发金额   jlsjh
xxa     52        1        0            50          102      _49P18Y2VP_49P18Y2VQ
xxb     48        1        1            50           98      _49P18Y2VP_49P18Y2VQ                                         
xxc     0         0        1            50           50      _49P18Y2VP_49P18Y2VQ
用这个sql语句可以得到正确答案(即198):
SELECT SUM(实发金额) -(SELECT SUM(数量 * 单价) FROM  Tb_工资姓名_b WHERE jlsjh_tb_工资姓名 = '_49P18Y2VP_49P18Y2VQ' AND chk班内 = 0) AS 实发金额
FROM Tb_工资姓名_b WHERE jlsjh_tb_工资姓名 = '_49P18Y2VP_49P18Y2VQ'
但我想用一种更简便的case when如下语句却得不到正确答案(即250):
SELECT  SUM(实发金额 -CASE WHEN chk班内 = 0 THEN 0 ELSE 数量 * 单价 END) AS 实发金额 FROM Tb_工资姓名_b WHERE jlsjh_tb_工资姓名 = '_49P18Y2VP_49P18Y2VQ'
请教一下各位,怎么写?想得到一句case when等同效果的select语句.

[ 本帖最后由 lgp740401 于 2015-4-17 09:00 编辑 ]
搜索更多相关主题的帖子: sql语句 姓名 
2015-04-15 16:50
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:0 
没表呢
2015-04-15 17:01
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:0 
上传表 要求是什么 要说清楚
2015-04-15 17:01
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
以下是引用lgp740401在2015-4-15 16:50:26的发言:

我有一个表(Tb_工资姓名_b)如下:意思:我实发金额中包括了班内工资+班外工资,当chk班内=0(不在班内),实际班内工资=实发金额-数量*单价(不在班内的工资)
姓名    数量     单价    chk班内     班内金额     实发金额   jlsjh
xxa     52        1        0            50          102      _49P18Y2VP_49P18Y2VQ
xxb     48        1        1            50           98      _49P18Y2VP_49P18Y2VQ                                         
xxc     0         0        1            50           50      _49P18Y2VP_49P18Y2VQ
用这个sql语句可以得到正确答案:
SELECT SUM(实发金额) -(SELECT SUM(数量 * 单价) FROM  Tb_工资姓名_b WHERE jlsjh_tb_工资姓名 = '_49P18Y2VP_49P18Y2VQ' AND chk班内 = 0) AS 实发金额
FROM Tb_工资姓名_b WHERE jlsjh_tb_工资姓名 = '_49P18Y2VP_49P18Y2VQ'
但我想用一种更简便的case when如下语句却得不到正确答案:
SELECT  SUM(实发金额 -CASE WHEN chk班内 = 0 THEN 0 ELSE 数量 * 单价 END) AS 实发金额 FROM Tb_工资姓名_b WHERE jlsjh_tb_工资姓名 = '_49P18Y2VP_49P18Y2VQ'
请教一下各位,怎么写?

这是什么语言?

活到老,学到老! http://www. E-mail:hu-jj@
2015-04-15 19:05
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:0 
好象sql  楼主发sql区看看
2015-04-15 19:59
lgp740401
Rank: 1
等 级:新手上路
帖 子:52
专家分:5
注 册:2008-5-18
得分:0 
回复 4楼 hu9jj
sql呀,难道不对?
2015-04-15 20:23
lgp740401
Rank: 1
等 级:新手上路
帖 子:52
专家分:5
注 册:2008-5-18
得分:0 
回复 5楼 tlliqi
sql区也发了
2015-04-15 20:23
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
是VFP 中的SQL命令,还是非VFP中的 SQL 命令,说清楚

坚守VFP最后的阵地
2015-04-15 20:39
lgp740401
Rank: 1
等 级:新手上路
帖 子:52
专家分:5
注 册:2008-5-18
得分:0 
回复 8楼 sdta
是VFP 中的SQL命令
2015-04-16 09:16
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用lgp740401在2015-4-16 09:16:57的发言:

是VFP 中的SQL命令

非要用SQL命令吗
数据记录多吗,能放上数据吗

坚守VFP最后的阵地
2015-04-16 09:42



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-444043-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.663961 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved