以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  统计每个订单号最新日期,而且数量大于50的订单数  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=73698)

--  作者:阿福
--  发布时间:2015/8/25 8:52:00
--  统计每个订单号最新日期,而且数量大于50的订单数
老师请问一下:
有个订单表,我想统计每个订单号最新日期,而且数量大于50的订单数,用select语句怎么写(如下表统计结果为3个

 订单号   日期   数量   
   001   1月1日   30
   001   1月1日   70
   001   1月2日   40
   001   1月2日   60
   002   1月3日   20
   002   1月3日   80
   002   1月4日   10
   002   1月4日   60
   003   1月2日   80
   004   1月3日   40


Dim mzhy As Integer 
Dim cmd As New SQLCommand
cmd.CommandText = "Select count(*) F rom {订单} Where [数量] > 50 and ,,,,,,,,,                "
mzhy  = cmd.ExecuteScalar()

--  作者:大红袍
--  发布时间:2015/8/25 9:09:00
--  

参考

 

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

 


--  作者:阿福
--  发布时间:2015/8/25 9:42:00
--  
老师请你改一下,不知哪里出错了
select count(*) f rom {订单} as a inner join (select 订单号,数量, max(日期) as 日期  f rom {订单} group by 订单号) as b on a.订单号 = b.订单号 and a.日期 = b.日期  and a.数量 = b.数量  where 数量 > 50
--  作者:大红袍
--  发布时间:2015/8/25 9:49:00
--  

Select count(*) f rom (select * f rom {订单} as a inner join (select 订单号, max(日期) as 日期  f rom {订单} group by 订单号) as b on a.订单号 = b.订单号 and a.日期 = b.日期 where 数量 > 50) as c


--  作者:阿福
--  发布时间:2015/8/25 9:50:00
--  
谢谢红袍老师,我也想到一种方法:
select count(*) f rom {订单} as a inner join (select 订单号, max(日期) as 日期  f rom {订单} group by 订单号) as b on a.订单号 = b.订单号 and a.日期 = b.日期    where 数量 > 50

--  作者:阿福
--  发布时间:2015/8/25 10:57:00
--  
老师在帮我看一下,下面代码哪里出错了?
Select * F rom {母猪分娩断奶信息} As a inner join (Select 编号, max(配种日期) As 配种日期  f rom {母猪分娩断奶信息}  group by 编号  ) As b on a.编号 = b.编号 And a.配种日期 = b.配种日期 Where [sys_user]= user.Name and [分娩_日期] is null and [状态]=\'存活\' and DateDiff(d, 配种日期, \'8/5/2015\' ) < 3 and DateDiff(d, 配种日期, \'8/12/2015\' ) > 3
--  作者:大红袍
--  发布时间:2015/8/25 11:00:00
--  
Select * F rom {母猪分娩断奶信息} As a inner join (Select 编号, max(配种日期) As 配种日期  f rom {母猪分娩断奶信息}  group by 编号  ) As b on a.编号 = b.编号 And a.配种日期 = b.配种日期 Where [sys_user]= \'张三\' and [分娩_日期] is null and [状态]=\'存活\' and DateDiff(d, 配种日期, \'2015-8-5\') < 3 and DateDiff(d, 配种日期, \'2015-8-12\') > 3
--  作者:阿福
--  发布时间:2015/8/25 11:07:00
--  
老师:编写代码后出现黄色字的错误提示
Select * F rom {母猪分娩断奶信息} As a inner join (Select 编号, max(配种日期) As 配种日期  f rom {母猪分娩断奶信息}  group by 编号  ) As b on a.编号 = b.编号 And a.配种日期 = b.配种日期 Where [sys_user]= \'开发者\' and [分娩_日期] is null and [状态]=\'存活\' and DateDiff(d, 配种日期, \'2015-8-5\') < 3 and DateDiff(d, 配种日期, \'2015-8-12\') > 3
.NET Framework 版本:2.0.50727.8000
Foxtable 版本:2014.11.11.1
错误所在事件:
详细错误信息:
列名 \'配种日期\' 不明确。
列名 \'配种日期\' 不明确。

但执行下面代码,少了where语句就没有出错
Select * F rom {母猪分娩断奶信息} As a inner join (Select 编号, max(配种日期) As 配种日期  f rom {母猪分娩断奶信息}  group by 编号  ) As b on a.编号 = b.编号 And a.配种日期 = b.配种日期


--  作者:大红袍
--  发布时间:2015/8/25 11:09:00
--  
Select * F rom {母猪分娩断奶信息} As a inner join (Select 编号, max(配种日期) As 配种日期  f rom {母猪分娩断奶信息}  group by 编号  ) As b on a.编号 = b.编号 And a.配种日期 = b.配种日期 Where [sys_user]= \'开发者\' and [分娩_日期] is null and [状态]=\'存活\' and DateDiff(d, b.配种日期\'2015-8-5\') < 3 and DateDiff(d, b.配种日期\'2015-8-12\') > 3