SQL group by 查询问题。

PhillipChao460990988 2013-02-21 11:24:15
ID ItemNumber Quantity InDate
1 03-001-3901 10 2012-08-15 18:59:28.717
2 03-001-3901 20 2012-08-14 18:59:28.717
3 03-003-681 30 2012-09-15 18:59:28.717

我要按照 ItemNumber分组,然后取出最大的InDate,同时查询出MAX(InDate) 所对应的 Quantity

要求结果如下:
ItemNumber Quantity InDate
03-001-3901 10 2012-08-15 18:59:28.717
03-003-681 30 2012-09-15 18:59:28.717
SELECT ItemNumber,
LastCountDate = MAX(UploadDate),
VarianceQuantity = MAX(VarianceQuantity)
FROM pwh.dbo.CycleCountUploadLog A WITH(NOLOCK)
GROUP BY ItemNumber
ORDER BY ItemNumber

我写的取出来的Quantity 结果不对,这条SQL 应该怎么写呢?
...全文
272 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
szm341 2013-02-21
  • 打赏
  • 举报
回复
select * from CycleCountUploadLog a where [InDate]=(select max([InDate]) from CycleCountUploadLog where [ItemNumber]=a.[ItemNumber])
發糞塗牆 2013-02-21
  • 打赏
  • 举报
回复
----------------------------------------------------------------
-- Author  :DBA_Huangzj(發糞塗牆)
-- Date    :2013-02-21 11:30:24
-- Version:
--      Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) 
--	Jun 17 2011 00:54:03 
--	Copyright (c) Microsoft Corporation
--	Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1, v.721)
--
----------------------------------------------------------------
--> 测试数据:[huang]
if object_id('[huang]') is not null drop table [huang]
go 
create table [huang]([ID] int,[ItemNumber] varchar(11),[Quantity] int,[InDate] datetime)
insert [huang]
select 1,'03-001-3901',10,'2012-08-15 18:59:28.717' union all
select 2,'03-001-3901',20,'2012-08-14 18:59:28.717' union all
select 3,'03-003-681',30,'2012-09-15 18:59:28.717'
--------------开始查询--------------------------

SELECT  *
FROM    [huang] a
WHERE   EXISTS ( SELECT 1
                 FROM   ( SELECT    ItemNumber ,
                                    MAX(InDate)[InDate]
                          FROM      huang
                          GROUP BY  ItemNumber
                        ) b
                 WHERE  a.ItemNumber = b.ItemNumber
                        AND a.InDate = b.[InDate] )
----------------结果----------------------------
/*
(3 行受影响)
ID          ItemNumber  Quantity    InDate
----------- ----------- ----------- -----------------------
1           03-001-3901 10          2012-08-15 18:59:28.717
3           03-003-681  30          2012-09-15 18:59:28.717

(2 行受影响)
 
*/

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧