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


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

主题: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]-->

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


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

cmd.CommandText = "Select * FROM {出库} INNER JOIN {采购明细} ON {采购明细}.型号= {出库}.型号"
[此贴子已经被作者于2014-9-11 14:28:37编辑过]

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


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

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

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


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

以下是引用utcxray在2014-9-11 16:32:00的发言:
谢谢,大问题已解决,但无法再添加分组,怎么回事

 

什么意思?


 回到顶部
帅哥哟,离线,有人找我吗?
utcxray
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

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

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


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

改一下

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
utcxray
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | 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()


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


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/11 17:33: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("出库日期",DateGroupEnum.Year,"{0}年")
b.VGroups.AddDef("出库日期","{0}月")

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

b.HorizontalTotal = True

b.VerticalTotal = True

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

 


 回到顶部
总数 29 1 2 3 下一页