以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  SQL语法问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=125048)

--  作者:wandongliang
--  发布时间:2018/9/18 21:22:00
--  SQL语法问题
请教各位老师,以下SQL统计语句,语法问题出在哪里?

Dim a As String = Tables("零售明细表").Current("店名")
Dim g As New SQLGroupTableBuilder("统计表1", "零售明细表")
g.C 
g.AddTable("零售明细表","商品编号","商品信息表","{商品信息表}.永久编号" )
g.Groups.AddDef("商品编号")
g.Groups.AddDef("商品名称")
g.Groups.AddDef("进价")
g.Groups.AddDef("日期", DateGroupEnum.None)
g.Totals.AddDef("数量")
g.Totals.AddExp("成本","进价 * 数量")
g.Totals.AddExp("利润","(单价 - 进价) * 数量")
g.Totals.AddDef("总额")
g.VerticalTotal = True
g.GrandProportion = True
g.Filter = "[日期] = \'" & Date.today & "\' and [商品名称] <> \'\' and [店名] = a"
g.Build()

--  作者:有点蓝
--  发布时间:2018/9/18 21:38:00
--  
运行提示什么错误?

Dim a As String = Tables("零售明细表").Current("店名")
Dim g As New SQLGroupTableBuilder("统计表1", "零售明细表")
g.C 
g.AddTable("零售明细表","商品编号","商品信息表","永久编号" )
g.Groups.AddDef("{商品信息表}.商品编号")
g.Groups.AddDef("商品名称")
g.Groups.AddDef("进价")
g.Groups.AddDef("日期", DateGroupEnum.None)
g.Totals.AddDef("数量")
g.Totals.AddExp("成本","进价 * 数量")
g.Totals.AddExp("利润","(单价 - 进价) * 数量")
g.Totals.AddDef("总额")
g.VerticalTotal = True
g.GrandProportion = True
g.Filter = "[日期] = \'" & Date.today & "\' and [商品名称] is not null and [店名] = \'" & a & "\'"
g.Build()


--  作者:wandongliang
--  发布时间:2018/9/18 23:52:00
--  
无法完成延迟准备,无法预定义语句,“]”附近有语法错误
生成的SQL语句错误,无法继续统计。

--  作者:wandongliang
--  发布时间:2018/9/18 23:52:00
--  
无法完成延迟准备,无法预定义语句,“]”附近有语法错误
生成的SQL语句错误,无法继续统计。

--  作者:有点甜
--  发布时间:2018/9/19 9:27:00
--  

试试这样测试,如果下面代码也有问题,做个例子发上来看看。

 

Dim a As String = Tables("零售明细表").Current("店名")
Dim g As New SQLGroupTableBuilder("统计表1", "零售明细表")
 
g.AddTable("零售明细表","商品编号","商品信息表","永久编号" )
g.Groups.AddDef("{商品信息表}.商品编号")
g.Groups.AddDef("商品名称")
g.Groups.AddDef("进价")
 
g.Totals.AddDef("数量")
g.Totals.AddExp("成本","进价 * 数量")
g.Totals.AddExp("利润","(单价 - 进价) * 数量")
g.Totals.AddDef("总额")
g.VerticalTotal = True
g.GrandProportion = True
 
g.Build()

--  作者:wandongliang
--  发布时间:2018/9/19 9:53:00
--  
这样没有问题,但是我想在统计的时候加个条件进去,就是只统计店名列值等于零售明细表当前行店名列的值的数据,该怎么加?
--  作者:wandongliang
--  发布时间:2018/9/19 10:13:00
--  
已经知道了,谢谢
--  作者:有点甜
--  发布时间:2018/9/19 10:15:00
--  

这样有没有问题?msgbox弹出什么?

 

Dim a As String = Tables("零售明细表").Current("店名")
Dim g As New SQLGroupTableBuilder("统计表1", "零售明细表")
g.AddTable("零售明细表","商品编号","商品信息表","永久编号" )
g.Groups.AddDef("{商品信息表}.商品编号")
g.Groups.AddDef("商品名称")
g.Groups.AddDef("进价")
\'g.Groups.AddDef("日期", DateGroupEnum.None)
g.Totals.AddDef("数量")
g.Totals.AddExp("成本","进价 * 数量")
g.Totals.AddExp("利润","(单价 - 进价) * 数量")
g.Totals.AddDef("总额")
g.VerticalTotal = True
g.GrandProportion = True
g.Filter = "[日期] = \'" & Date.today & "\' and [商品名称] is not null and [店名] = \'" & a & "\'"
msgbox(g.filter)
g.Build()
[此贴子已经被作者于2018/9/19 10:16:28编辑过]