以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  会计账薄目录 Sqlsever版  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=144829)

--  作者:nxhylczh
--  发布时间:2019/12/31 7:53:00
--  会计账薄目录 Sqlsever版
这是MDB的Sql语句
S e lect DISTINCTROW 科目编码 As 科目_编码,年度, 科目名称 As 科目_名称, IIf( Len ([科目编码])=4 , \'总分类账\' , IIf([有下级]=true And Len([科目编码]) >4 ,\'汇总式总账\',\'明细分类账\')) as 账薄属性 , 账薄类型,科目类型,科目分类  FROM  {K01} where 账套编码=\'NXHY-191205-0005\' And 年度=2019 union  S elect DISTINCTROW 科目编码 As 科目_编码,年度, 科目名称 As 科目_名称, \'明细分类账\' AS 账薄属性, 账薄类型,科目类型,科目分类 FROM K01 Where  len(科目编码)= 4 And 有下级 = False And 账套编码=\'NXHY-191205-0005\' and 年度=2019 
能帮我改为  Sql Sever 
   主要是 Case when  的嵌套不会用


图片点击可在新窗口打开查看此主题相关图片如下:123.bmp
图片点击可在新窗口打开查看
  


[此贴子已经被作者于2019/12/31 10:05:56编辑过]

--  作者:有点蓝
--  发布时间:2019/12/31 8:43:00
--  
S e lect DISTINCTROW 科目编码 As 科目_编码,年度, 科目名称 As 科目_名称, (case when  Len ([科目编码])=4 then \'总分类账\'  when [有下级]=true And Len([科目编码] >4  then \'汇总式总账\' else \'明细分类账\' end) as 账薄属性 , ......
--  作者:nxhylczh
--  发布时间:2019/12/31 9:06:00
--  
S elect DISTINCTROW 科目编码 As 科目_编码,年度, 科目名称 As 科目_名称, (Case when  Len (科目编码)=4 Then \'总分类账\'  when 有下级=1 And Len(科目编码) >4  Then \'汇总式总账\' else \'明细分类账\' end) as 账薄属性 , 账薄类型,科目类型,科目分类  FROM  {K01} where 账套编码=\'NXHY-191205-0005\' And 年度=2019 union  S elect DISTINCTROW 科目编码 As 科目_编码,年度, 科目名称 As 科目_名称, \'明细分类账\' AS 账薄属性, 账薄类型,科目类型,科目分类 FROM K01 Where  len(科目编码)= 4 And 有下级 = 0  And 账套编码=\'NXHY-191205-0005\' and 年度=2019

关键字 AS 附近有语法错误 
看不明白么

--  作者:有点蓝
--  发布时间:2019/12/31 9:20:00
--  
看不出有什么问题,把sql拿到数据库执行,减少代码逐步测试
--  作者:nxhylczh
--  发布时间:2019/12/31 9:39:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:新建位图图像.bmp
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2019/12/31 9:51:00
--  
把附近的字符全部去掉,然后手工重新录入一下,注意不要输入全角的字符
--  作者:nxhylczh
--  发布时间:2019/12/31 10:04:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:123.bmp
图片点击可在新窗口打开查看

总算搞定了
谢谢版主!