Foxtable(狐表)用户栏目专家坐堂 → SELECT问题


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

主题:SELECT问题

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


加好友 发短信
等级:三尾狐 帖子:668 积分:5053 威望:0 精华:0 注册:2011/10/22 13:37:00
SELECT问题  发帖心情 Post By:2014/9/11 13:31:00 [显示全部帖子]

SELECT 字段列表 FROM {表1} INNER JOIN {表2} ON {表1}.列名 = {表2}.列名

这句话意思:对所有表1和表2都有对应列名的数据在表1中查询 字段列表要求的数据。我的理解对吗?

问题:表1中有型号,数量,但无该型号对应的供应商列,表2中有供应商和型号。
目的:生成一个表,该表含供应商,型号,及表1中的数量。

下述代码出库是表1,采购明细是表2,出库表中有型号,出库数量,出库日期,金额,但没有供应商。采购明细表中有供应商及型号,想按出库日期统计每个供应商的出库数量及金额,代码实际执行中报SELECT错误。请指点。
'SQL语句生成临时表
Dim 
cmd As New SQLCommand
Dim 
dt As DataTable
‘cmd.ConnectionName = 
"Sale"
cmd
.CommandText = "Select *,型号 FROM {出库} INNER JOIN {出库} ON {采购明细}.型号= {出库}.型号"
dt = cmd.ExecuteReader()

'
对临时进行分组统计
Dim 
b As New CrossTableBuilder("统计表111",dt)
b
.HGroups.AddDef("供应商")
b
.VGroups.AddDef("日期","{0}")
b.Totals.AddDef(
"数量") 
b.HorizontalTotal = 
True
b.VerticalTotal = 
True
<!--[if !supportLineBreakNewLine]-->b.Build() <!--[endif]-->

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


加好友 发短信
等级:三尾狐 帖子:668 积分:5053 威望:0 精华:0 注册:2011/10/22 13:37:00
  发帖心情 Post By:2014/9/11 16:32:00 [显示全部帖子]

谢谢,大问题已解决,但无法再添加分组,怎么回事

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


加好友 发短信
等级:三尾狐 帖子:668 积分:5053 威望:0 精华:0 注册:2011/10/22 13:37:00
  发帖心情 Post By:2014/9/11 16:37:00 [显示全部帖子]


cmd.CommandText = "Select * FROM {出库} INNER JOIN {采购明细} ON {采购明细}.型号= {出库}.型号"
上述代码生成后,dt应该已包含出库表中和采购明细表型号对应的供应商的所有数据,我按供应商按月统计数量没问题,再添加按供应商按型号按月统计数量就说无型号列,统计金额也不行。

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


加好友 发短信
等级:三尾狐 帖子:668 积分:5053 威望:0 精华:0 注册:2011/10/22 13:37:00
  发帖心情 Post By:2014/9/11 16:40:00 [显示全部帖子]

Dim b As New CrossTableBuilder("统计表111",dt)
b.HGroups.AddDef("
供应商")
b.VGroups.AddDef("
日期","{0}")
b.Totals.AddDef("
数量") 
b.HorizontalTotal =
 True


<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

这样可以。


<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

Dim b As New CrossTableBuilder("统计表111",dt)
b.HGroups.AddDef("
供应商")

b.HGroups.AddDef("型号")
b.VGroups.AddDef("日期","{0}")
b.Totals.AddDef("
数量") 
b.HorizontalTotal =
 True

这样不行


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


加好友 发短信
等级:三尾狐 帖子:668 积分:5053 威望:0 精华:0 注册:2011/10/22 13:37:00
  发帖心情 Post By:2014/9/11 16:41:00 [显示全部帖子]

怎么刚发的消息多了些莫名其妙的东西,像上楼的带<>中间的

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


加好友 发短信
等级:三尾狐 帖子:668 积分:5053 威望:0 精华:0 注册:2011/10/22 13:37:00
  发帖心情 Post By:2014/9/11 17:18:00 [显示全部帖子]

Dim cmd As New SQLCommand

Dim dt As DataTable

cmd.CommandText = "Select {出库}.*, {采购明细}.供应商 FROM {出库} INNER JOIN {采购明细} ON {采购明细}.型号= {出库}.型号"

dt = cmd.ExecuteReader()

'对临时进行分组统计

Dim b As New CrossTableBuilder("统计表111",dt)

b.HGroups.AddDef("供应商")

b.HGroups.AddDef("型号")

b.VGroups.AddDef("出库日期","{0}月")

b.Totals.AddDef("出库数量")

b.HorizontalTotal = True

b.VerticalTotal = True

Tables("采购管理_Table18").DataSource = b.BuildDataSource()


代码执行没问题,但有个疑问:上述代码生成的是供应商月出库数量表吗?如果是,那统计数字就不对呀。


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


加好友 发短信
等级:三尾狐 帖子:668 积分:5053 威望:0 精华:0 注册:2011/10/22 13:37:00
  发帖心情 Post By:2014/9/11 17:56:00 [显示全部帖子]

'定义一个GroupTableBuilder,名称为"统计表2",对采购明细表进行统计.
Dim ba As New GroupTableBuilder("统计表5",DataTables("出库"))
ba.Groups.AddDef("型号") '根据型号分组
ba.groups.AddDef("出库日期") '对出库日期进行分组
ba.Totals.AddDef("出库数量") '对数量进行统计
ba.Totals.AddDef("金额") '对金额进行统计
ba.Totals.AddDef("利润") '对利润进行统计
ba.Subtotal = True '生成汇总模式
ba.VerticalTotal = True '自动垂直汇总
ba.GrandProportion = True
Tables("采购管理_Table14").DataSource = ba.BuildDataSource()  

我前面单独有段代码统计月出库型号出库数量,统计数据和刚才的数据不一样,这是此代码的截图
此主题相关图片如下:无标题2.jpg
按此在新窗口浏览图片


Dim cmd As New SQLCommand

Dim dt As DataTable

cmd.CommandText = "Select {出库}.*, {采购明细}.供应商 FROM {出库} INNER JOIN {采购明细} ON {采购明细}.型号= {出库}.型号"

dt = cmd.ExecuteReader()

'对临时进行分组统计

Dim b As New CrossTableBuilder("统计表111",dt)

b.HGroups.AddDef("供应商")

b.HGroups.AddDef("型号")

b.VGroups.AddDef("出库日期","{0}月")

b.Totals.AddDef("出库数量")

b.HorizontalTotal = True

b.VerticalTotal = True

Tables("采购管理_Table18").DataSource = b.BuildDataSource()


这是此代码的截图
此主题相关图片如下:无标题1.jpg
按此在新窗口浏览图片


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


加好友 发短信
等级:三尾狐 帖子:668 积分:5053 威望:0 精华:0 注册:2011/10/22 13:37:00
  发帖心情 Post By:2014/9/11 17:57:00 [显示全部帖子]

'定义一个GroupTableBuilder,名称为"统计表2",对采购明细表进行统计.
Dim ba As New GroupTableBuilder("统计表5",DataTables("出库"))
ba.Groups.AddDef("型号") '根据型号分组
ba.groups.AddDef("出库日期") '对出库日期进行分组
ba.Totals.AddDef("出库数量") '对数量进行统计
ba.Totals.AddDef("金额") '对金额进行统计
ba.Totals.AddDef("利润") '对利润进行统计
ba.Subtotal = True '生成汇总模式
ba.VerticalTotal = True '自动垂直汇总
ba.GrandProportion = True
Tables("采购管理_Table14").DataSource = ba.BuildDataSource()  

我前面单独有段代码统计月出库型号出库数量,统计数据和刚才的数据不一样,这是此代码的截图
此主题相关图片如下:无标题2.jpg
按此在新窗口浏览图片

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


加好友 发短信
等级:三尾狐 帖子:668 积分:5053 威望:0 精华:0 注册:2011/10/22 13:37:00
  发帖心情 Post By:2014/9/12 9:52:00 [显示全部帖子]

有点甜,代码执行没问题,没报错,但统计数据还是不对呀,有意思的是有个别项的数据是对的。项目压缩后有300多M,要不你加我QQ1034401012

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


加好友 发短信
等级:三尾狐 帖子:668 积分:5053 威望:0 精华:0 注册:2011/10/22 13:37:00
  发帖心情 Post By:2014/9/12 9:53:00 [显示全部帖子]

加年也不行

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