以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- sql Sever 语句与 Access的差别 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=144433) |
-- 作者:nxhylczh -- 发布时间:2019/12/19 18:10:00 -- sql Sever 语句与 Access的差别 S e l e c t left(P01.科目编码,4) As 科目编码, Sum(P01.借方本币金额) As 借方金额, Sum(P01.贷方本币金额) As 贷方金额, sum(iif(借方本币金额<>0,数量,0)) As 借方数量, sum(iif(贷方本币金额<>0,数量,0)) As 贷方数量, sum(iif(借方本币金额<>0,原币金额,0)) As 借方原币金额, sum(iif(贷方本币金额<>0,原币金额,0)) As 贷方原币金额 FROM P01 WHERE P01.账套ID=\'NXHY-191205-0005\' And P01.年=2019 And P01.月=1 AND P01.凭证编号 Between 11 And 11 GROUP BY left(P01.科目编码,4) 以上代码 在Access上执行没有问题 在Sqlsever上执行报 \'<\' 附近有语法错误 不知道是什么原因
|
-- 作者:y2287958 -- 发布时间:2019/12/19 19:14:00 -- SQL中的iif用Case When替代 |
-- 作者:nxhylczh -- 发布时间:2019/12/19 19:21:00 -- 这个真不会写 |
-- 作者:nxhylczh -- 发布时间:2019/12/19 19:34:00 -- 百度搜索SQlsever 是支持IIF函数的 我估计又是一个Bug |
-- 作者:有点蓝 -- 发布时间:2019/12/20 8:33:00 -- 不可能支持的,百度链接发过来看看? case when用法参考:http://www.foxtable.com/webhelp/topics/1827.htm |
-- 作者:nxhylczh -- 发布时间:2019/12/20 9:07:00 -- https://zhidao.baidu.com/question/588456473070618645.html |
-- 作者:有点蓝 -- 发布时间:2019/12/20 9:42:00 -- 随便说的吧。百度知道的回答您也信!?我还以为是官方文档的链接呢! |
-- 作者:nxhylczh -- 发布时间:2019/12/20 10:09:00 -- S ELECT LEFT
( P01.科目编码, 4 ) AS 科目编码,
SUM ( P01.借方本币金额 ) AS 借方金额,
SUM ( P01.贷方本币金额 ) AS 贷方金额,
SUM ( CASE WHEN 借方本币金额<> 0 THEN 数量 ELSE 0 END ) AS 借方数量,
SUM ( CASE WHEN 贷方本币金额<> 0 THEN 数量 ELSE 0 END ) AS 贷方数量,
SUM ( CASE WHEN 借方本币金额<> 0 THEN 原币金额 ELSE 0 END ) AS 借方原币金额,
SUM ( CASE WHEN 贷方本币金额<> 0 THEN 原币金额 ELSE 0 END ) AS 贷方原币金额 FROM P01 WHERE
P01.账套编码 = \'NXHY-191205-0005\'
AND P01.年 = 2019
AND P01.月 = 1
AND P01.凭证编号 BETWEEN 16
AND 16 GROUP BY LEFT (P01.科目编码,
4 )
[此贴子已经被作者于2019/12/20 10:09:50编辑过]
|