Foxtable(狐表)用户栏目专家坐堂 → 老大 帮我看个SQL语句 取同一客户 同一产品的最后记录


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

主题:老大 帮我看个SQL语句 取同一客户 同一产品的最后记录

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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/3/19 10:53:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/3/19 11:02:00 [只看该作者]

以下是引用muhua在2013-3-19 10:53:00的发言:

Tables("窗口1_Table1").Fill("Select 单价,折扣,数量,日期,产品,客户,雇员 From {订单} a where a.日期 in (Select max(日期)  From {订单} Group By 产品)","Sale",True)

 

这个也试过,但是不是他要的结果,如果把后面的True改为False 则出错了。

Dim strIn As String = ""

Dim cmdText As String = ""
Dim cmd As new SQLCommand
cmd.C

cmd.CommandText = "Select  * From {订单} a INNER JOIN (Select Max(日期) As 日期 From {订单} Group By 产品) b on a.日期 = b.日期"
Dim dt As DataTable = cmd.ExecuteReader
For Each dr As DataRow In dt.DataRows
    strIn = strIn & "'" & dr("_Identify") & "',"
Next
strIn = strIn.TrimEnd(",")
cmdText = "Select 单价,折扣,数量,日期,产品,客户,雇员,日期 from {订单} where [_Identify] In (" & strIn & ")"

Tables("窗口1_Table1").Fill(cmdText,"Sale",false)

如果是数值,去掉'

[此贴子已经被作者于2013-3-19 11:07:19编辑过]

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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/3/19 11:04:00 [只看该作者]

用户已被锁定

 回到顶部
帅哥哟,离线,有人找我吗?
生命在于。。
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:7 积分:100 威望:0 精华:0 注册:2013/3/19 10:48:00
  发帖心情 Post By:2013/3/19 11:22:00 [只看该作者]

朱 你也被骗了?


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


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/3/19 11:26:00 [只看该作者]

请查看效果,没有问题,这个例子没有_Identify列的,编号列是数值型

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:解决问题.rar

 

Dim strIn As String = ""
Dim cmdText As String = ""
Dim cmd As new SQLCommand
cmd.C
cmd.CommandText = "Select * From {订单} a INNER JOIN (Select 产品,Max(日期) As 日期 From {订单} Group By 产品) b on a.日期 = b.日期 and a.产品 = b.产品"
Dim dt As DataTable = cmd.ExecuteReader
For Each dr As DataRow In dt.DataRows
    strIn = strIn & dr("编号") & ","
Next
strIn = strIn.TrimEnd(",")
cmdText = "Select * from {订单} where 编号 In (" & strIn & ") order by 客户"
Tables("窗口1_Table1").Fill(cmdText,"Sale",False)
Tables("窗口1_Table1").AllowEdit = True


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2013/3/19 11:41:00 [只看该作者]

我看看

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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/3/19 11:50:00 [只看该作者]

用户已被锁定

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2013/3/19 11:52:00 [只看该作者]

说少个括号

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2013/3/19 11:53:00 [只看该作者]

muhua 加了主键列应该可以编辑了

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2013/3/19 11:59:00 [只看该作者]

.NET Framework 版本:2.0.50727.3634
Foxtable 版本:2012.11.29.1
错误所在事件:
详细错误信息:
System.Data.OleDb.OleDbException: 无法完成延迟准备。
未能准备语句。
')' 附近有语法错误。
   在 System.Data.OleDb.OleDbDataReader.ProcessResults(OleDbHResult hr)
   在 System.Data.OleDb.OleDbDataReader.BuildSchemaTableRowset(Object handle)
   在 System.Data.OleDb.OleDbDataReader.GenerateSchemaTable(OleDbDataReader dataReader, Object handle, CommandBehavior behavior)
   在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
   在 System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior)
   在 System.Data.OleDb.OleDbCommand.ExecuteDbDataReader(CommandBehavior behavior)
   在 System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior)
   在 System.Data.Common.DbCommandBuilder.GetSchemaTable(DbCommand sourceCommand)
   在 System.Data.Common.DbCommandBuilder.BuildCache(Boolean closeConnection, DataRow dataRow, Boolean useColumnsForParameterNames)
   在 System.Data.Common.DbCommandBuilder.GetInsertCommand(DataRow dataRow, Boolean useColumnsForParameterNames)
   在 System.Data.OleDb.OleDbCommandBuilder.GetInsertCommand()
   在 Foxtable.Ol0O0O0010001O.OO0100Ol10l0OO0O(OleDbDataAdapter OOOO1l0)
   在 Foxtable.DataTable.Oll0(String O0110101lOOO, OleDbConnection O01O00Ol1l, Boolean O0Oll00)
   在 Foxtable.DataTable.Fill(String O1l0000O0O00, String Ol10llO0lOlOl0, Boolean Ol101l1)
   在 Foxtable.Table.Fill(String O1llll1001l1, String O1lO0OlOOOO00O, Boolean O100l0O)

 回到顶部
总数 38 上一页 1 2 3 4 下一页