以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- SELECT问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=56727) |
|
-- 作者:utcxray -- 发布时间:2014/9/11 13:31:00 -- SELECT问题 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]--> |
|
-- 作者:有点甜 -- 发布时间:2014/9/11 14:28:00 -- cmd.CommandText = "Select * FROM {出库} INNER JOIN {采购明细} ON {采购明细}.型号= {出库}.型号" [此贴子已经被作者于2014-9-11 14:28:37编辑过]
|
|
-- 作者:utcxray -- 发布时间:2014/9/11 16:32:00 -- 谢谢,大问题已解决,但无法再添加分组,怎么回事 |
|
-- 作者:有点甜 -- 发布时间:2014/9/11 16:35:00 -- 以下是引用utcxray在2014-9-11 16:32:00的发言:
谢谢,大问题已解决,但无法再添加分组,怎么回事
什么意思? |
|
-- 作者:utcxray -- 发布时间:2014/9/11 16:37:00 --
|
|
-- 作者:utcxray -- 发布时间:2014/9/11 16:40:00 -- Dim b As New CrossTableBuilder("统计表111",dt)
这样可以。
Dim b As New CrossTableBuilder("统计表111",dt) b.HGroups.AddDef("型号") 这样不行 |
|
-- 作者:utcxray -- 发布时间:2014/9/11 16:41:00 -- 怎么刚发的消息多了些莫名其妙的东西,像上楼的带<>中间的 |
|
-- 作者:有点甜 -- 发布时间:2014/9/11 16:45:00 -- 改一下
cmd.CommandText = "Select {出库}.*, {采购明细}.供应商 FROM {出库} INNER JOIN {采购明细} ON {采购明细}.型号= {出库}.型号" |
|
-- 作者:utcxray -- 发布时间: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() 代码执行没问题,但有个疑问:上述代码生成的是供应商月出库数量表吗?如果是,那统计数字就不对呀。 |
|
-- 作者:有点甜 -- 发布时间: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.Totals.AddDef("出库数量") b.HorizontalTotal = True b.VerticalTotal = True Tables("采购管理_Table18").DataSource = b.BuildDataSource()
|