以文本方式查看主题

-  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=30003)

--  作者:布莱克朱
--  发布时间:2013/3/18 22:30:00
--  老大 帮我看个SQL语句 取同一客户 同一产品的最后记录
Select  max(送货日期) As [送货日期],送货单号,客户名称,产品编号,产品名称,规格,数量,单价,金额,单位,是否停用 From {送货明细} Group By  送货单号,客户名称,产品编号,产品名称,规格,数量,单价,金额,单位,是否停用 

  我这段代码放在SQL查询里面得到正确的结果,但是我放到表里面用fill加载  因为FILL加载需要主键列  所以分组也需要加入主键列才行 结果加载却是全部的数据 这个应该怎么改才行?

  底下是加载代码:



Dim s As String ="Select  max(送货日期) As [送货日期],送货单号,客户名称,产品编号,产品名称,规格,数量,单价,金额,单位,是否停用,_Identify From {送货明细} Group By _Identify,送货单号,客户名称,产品编号,产品名称,规格,数量,单价,金额,单位,是否停用 "
Tables(e.Form.Name & "_Table1").Fill(s,"Server",False)

--  作者:blackzhu
--  发布时间:2013/3/19 8:12:00
--  
我需要利用 

loadfilter 加载同一产品 同一客户  的最后的送货记录  可以根据送货日期.

--  作者:blackzhu
--  发布时间:2013/3/19 8:43:00
--  
写在窗口1就行
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:解决问题.rar


--  作者:狐狸爸爸
--  发布时间:2013/3/19 8:48:00
--  

老朱,这里有个例子:

http://www.foxtable.com/help/topics/2473.htm

 

你先看一下,不行的话,木华再帮你写一个。


--  作者:jspta
--  发布时间:2013/3/19 8:58:00
--  

这个必须用inner join ,昨天我发的那帖子你参考下,同样地问题,仔细看看inner join后面的语句,修改下应该就可以了

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=29969&skin=0


--  作者:blackzhu
--  发布时间:2013/3/19 9:29:00
--  
我这个做过了 但是没有 加载数据 .  我需要可编辑.
--  作者:blackzhu
--  发布时间:2013/3/19 10:42:00
--  
muhua  没有意义呀 我需要可编辑. 老大 出个手
--  作者:jspta
--  发布时间:2013/3/19 10:50:00
--  

这个算查询表吗?

那再变通下,用这个SQL,cmd语句获取DT,再获取每行的identify,用in语句加载获得的Iidentify集合到Table就可以了,原来我就是这么做的

 


--  作者:jspta
--  发布时间: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编辑过]

--  作者:生命在于。。
--  发布时间:2013/3/19 11:22:00
--  

朱 你也被骗了?