日期:2014-05-17  浏览次数:20620 次

SQL group by 查询问题。
本帖最后由 PhillipChao460990988 于 2013-02-21 11:27:02 编辑
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 应该怎么写呢?
sql group?by

------解决方案--------------------
----------------------------
-- 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
       &nb