Foxtable(狐表)用户栏目专家坐堂 → 关于SQL语句的使用


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

主题:关于SQL语句的使用

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


加好友 发短信
等级:七尾狐 帖子:1691 积分:16460 威望:0 精华:0 注册:2013/7/31 13:03:00
关于SQL语句的使用  发帖心情 Post By:2018/3/23 7:42:00 [只看该作者]

设SQL是一条sql语句,希望再加上一列,我这样做:
sql = " *,新列 from(" & sql & ")"
经测试,不行。怎样才能行?

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


加好友 发短信
等级:五尾狐 帖子:1105 积分:8967 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2018/3/23 8:12:00 [只看该作者]

你这所谓增加一列是指增加一个原来table表中没有的列还是指已经有的列,如果是没有的列,可以用下面语句:

s elect cdate('2017-01-01') as 测试1, cdbl(0) as 测试2 from {表A}
 
除了逻辑列不能处理,其余的类型都基本能转换的

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/23 8:46:00 [只看该作者]

要像2楼那样写代码

 

sql = " *, '' As 新列 from(" & sql & ")"


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


加好友 发短信
等级:七尾狐 帖子:1691 积分:16460 威望:0 精华:0 注册:2013/7/31 13:03:00
  发帖心情 Post By:2018/3/23 9:31:00 [只看该作者]

谢谢。

我实际上是想添加商品表中的已有列“标准价”:

sql = " s elect  *,标准价 from (" & sql & ") as a INNER JOIN {商品表} on {商品表}.条码 = a.条码"

但是没有通过。

这样写法有何问题吗?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/23 9:33:00 [只看该作者]

你用 Select * 的时候,就加上了所有的列了,为什么要额外写?

 

 


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


加好友 发短信
等级:七尾狐 帖子:1691 积分:16460 威望:0 精华:0 注册:2013/7/31 13:03:00
  发帖心情 Post By:2018/3/23 9:46:00 [只看该作者]

因为原表中没有“标准价”列

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


加好友 发短信
等级:七尾狐 帖子:1691 积分:16460 威望:0 精华:0 注册:2013/7/31 13:03:00
  发帖心情 Post By:2018/3/23 9:49:00 [只看该作者]

就是(" & sql & ")中没有标准价列

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/23 9:50:00 [只看该作者]

以下是引用czy66ds在2018/3/23 9:46:00的发言:
因为原表中没有“标准价”列

 

1、如果商品表有,肯定能带出来

 

2、如果商品表没有,那不可能自动生成


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


加好友 发短信
等级:七尾狐 帖子:1691 积分:16460 威望:0 精华:0 注册:2013/7/31 13:03:00
  发帖心情 Post By:2018/3/23 10:05:00 [只看该作者]

 

我贴出全部代码吧,帮我看一下:

代码目的:创建结存表

 

Dim sql As String
Dim f1 As String ="where 店铺 = '**万达LT'"
Dim f2 As String =" where 店铺 = '**万达LT' AND 日期 >='2018-02-01' And 日期 <= '2018-02-28'"
sql = "s elect  店铺,条码,本月结存 As 上月结存,0 As 入库,0 As 出库, 0 As 销售  from {结存表}  f1 union all " & _
"s elect  店铺,条码,0,数量,0,0  from {@入库记录表}  f2 union all " & _
"s elect  店铺,条码,0,0,数量,0  from {@出库记录表}  f2 union all " & _
"s elect  店铺,条码,0,0,0,数量  from {@销售记录表}  f2 "
sql = sql.Replace("f1",f1)
sql = sql.Replace("f2",f2)
sql = sql.Replace("@","乐町")
sql = " s elect  店铺,条码,sum(上月结存) as 上月结存,sum(入库) as 入库 ,sum(出库) as 出库,sum(销售) as 销售,(sum(上月结存)+sum(入库)-sum(出库)-sum(销售)) as 本月结存 from (" & sql & ") As a group by 店铺,条码  ORDER BY 店铺,条码"

 

'----到此为止,代码正确。下面要添加商品表中存在的标准价列,但是报错了


sql = " s elect  *, 标准价 from (" & sql & ") as a inner join {@商品表} on {@商品表}.条码 = a.条码 "
sql = sql.Replace("@","乐町")
MessageBox.Show(sql)
Dim T1 As Table = e.Form.Controls("Table1").Table
T1.Fill(sql,"gsjcc",True)


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/23 11:19:00 [只看该作者]

这样的sql语句有没有问题?

 

sql = " select  * from (" & sql & ") as a inner join {@商品表} as b on b.条码 = a.条码 "

 

这样呢?

 

sql = " select a.*, b.标准价 from (" & sql & ") as a inner join {@商品表} as b on b.条码 = a.条码 "

[此贴子已经被作者于2018/3/23 11:19:18编辑过]

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