Foxtable(狐表)用户栏目专家坐堂 → SQL表达式的写法请教


  共有3687人关注过本帖树形打印复制链接

主题:SQL表达式的写法请教

帅哥哟,离线,有人找我吗?
ap9709130
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1470 积分:11456 威望:0 精华:0 注册:2013/11/24 22:10:00
SQL表达式的写法请教  发帖心情 Post By:2016/9/8 15:52:00 [只看该作者]

有个表达试为: IIF(产品数量 > 5,产品数量/包装规格,1)  我想生成个新的列,列名为:件数   是根据表达式来决定的,如果产品数量 大于5 则为: 共(产品数量/包装规格)件,否则就是:共件

 

se lect  IIF(产品数量 > 5,共(产品数量/包装规格)件,共1件)  as 件数 from .....  还是

 

在列名中怎么才能引用表达式啊?

 

 


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/8 16:09:00 [只看该作者]

没明白你的意思。

列表达式和sql是2回事,不能混用

列名只能输入字符,不能用表达式

 回到顶部
帅哥哟,离线,有人找我吗?
ap9709130
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1470 积分:11456 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2016/9/8 16:37:00 [只看该作者]

有点蓝老师

 

我的意思是,件数列里的内容中如果要用到表达式,要怎么写,上在的例子,列名是:件数   但件数的内容是:共??件,其它??部分为表达式,这种情况要怎么写?


 回到顶部
帅哥哟,离线,有人找我吗?
ap9709130
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1470 积分:11456 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2016/9/8 17:15:00 [只看该作者]

我可能没写清楚,再写清楚点。

 

有个表达式A, 会根据条件产生一个整数,我现在想生成一个列,列的内容为:共A件,列名为:件数 ,不会写。

 

se lect 共“A”件  as 件数 from {} ...   如果是狐表,应该这样写:共" & A & "件 as 件数,SQL要怎么写?


 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/8 17:16:00 [只看该作者]

IIF(产品数量 > 5,'共'+(产品数量/包装规格)+'件','共1件')

 回到顶部
帅哥哟,离线,有人找我吗?
ap9709130
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1470 积分:11456 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2016/9/8 22:02:00 [只看该作者]

试了,会出错。说是整数和字符不能转换。“(产品数量/包装规格)” 这个表达式的结果是整数   试了好久都不行? 如果是狐表 就好处理了,'共" & (产品数量/包装规格) & "件'. SQL不会。

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/8 22:19:00 [只看该作者]

IIF(产品数量 > 5,'共'+cstr(产品数量/包装规格)+'件','共1件')

 回到顶部
帅哥哟,离线,有人找我吗?
ap9709130
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1470 积分:11456 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2016/9/8 23:06:00 [只看该作者]

研究了两天的SQL,现在语句没有出现错误,但是很奇怪,产生的表和实际情况不同,有的会多几行,有的不多,不知道怎么回事。请看下图,这是用狐表的方法产生的正确的库存表:

 


图片点击可在新窗口打开查看此主题相关图片如下:正确的.png
图片点击可在新窗口打开查看

 

 

这是用SQL产生的表,第一个产品没有多,但第二个产品就多了5行,后面的也是,有的多了,有的没多,不知道怎么回事?


 


图片点击可在新窗口打开查看此主题相关图片如下:不正确.png
图片点击可在新窗口打开查看

 

SQL的语句如下:

 

s e lect 入库时间,{物料信息表}.产品名称,{物料信息表}.包装规格,{库存明细表1}.产品批号,{库存明细表1}.产品数量,ROUND(piao面价,2) as piao面价,IIF(成本价 > 0,ROUND(成本价 + ((s ele ct Sum(报销金额) from {报销明细表} where {报销明细表}.编号标注 = {订单明细表}.订单编号 and 销售 = 0)*{库存明细表1}.实收数量* IIF(成本价> 0,成本价,piao面价))/({订单主表}.总金额 * 实收数量),2),ROUND(IIF(((S el ect Sum(报销金额) from {报销明细表} where {报销明细表}.编号标注 = {订单明细表}.订单编号 And 销售 = 0)*{库存明细表1}.实收数量* IIF(成本价> 0,成本价,piao面价))/({订单主表}.总金额 * 实收数量)> 0,piao面价 + ((S el ect Sum(报销金额) from {报销明细表} where {报销明细表}.编号标注 = {订单明细表}.订单编号 And 销售 = 0)*{库存明细表1}.实收数量* IIF(成本价> 0,成本价,piao面价))/({订单主表}.总金额 * 实收数量),piao面价),2)) as 成本价,IIF(成本价> 0,ROUND(成本价 * {库存明细表1}.产品数量,2),ROUND(piao面价*{库存明细表1}.产品数量,2)) AS 库存金额,{订单明细表}.外币,{库存明细表1}.仓库名称,IIF({库存明细表1}.产品数量/{物料信息表}.包装系数> 1,ROUND({库存明细表1}.产品数量/{物料信息表}.包装系数,0),1) As 件数,{库存明细表1}._Identify FROM ((({库存明细表1} INNER JOIN {物料信息表} ON {库存明细表1}.MID = {物料信息表}._Identify) INNER JOIN {订单明细表} ON {库存明细表1}.订单编号 = {订单明细表}._Identify) INNER JOIN {报销明细表} ON {订单明细表}.订单编号 = {报销明细表}.编号标注) INNER JOIN {订单主表} ON {订单明细表}.订单编号 = {订单主表}._Identify  where {库存明细表1}.所属公司 = 'aa' And {库存明细表1}.产品数量 > 0 ORDER BY 产品名称,入库时间

希望高指点,不胜感激!


 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/8 23:12:00 [只看该作者]

除非导数据出来测试,否则没有办法判断

 回到顶部
帅哥哟,离线,有人找我吗?
ap9709130
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1470 积分:11456 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2016/9/8 23:20:00 [只看该作者]

数据里第一个表是对的,第二个表里重复的都是多出来的。

 

像这类的SQL语句,怎么会生成克隆行呢?真奇怪!


 回到顶部
总数 13 1 2 下一页