日期:2014-05-18  浏览次数:20399 次

急,如何检索出整行的数据,在使用group by语句是
我有一个表,有四个字段 时间,地区,类别,销售量
如何检索出某个类别,每天那个销售量大的地区的整个一行数据,同时那时间排序,应如何检索?

------解决方案--------------------
SQL code
select * 
from tb t
where not exists(select 1 from tb where 地区=t.地区 and convert(char(10),时间,120))=convert(char(10),t.时间,120)) and 销售量>t.销售量)

------解决方案--------------------
--创建测试表
CREATE TABLE [dbo].[T_tb] (
[Area] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,--地区
[Daytime] [datetime] NOT NULL ,--时间
[TypeName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,--类型
[SellNumber] [int] NOT NULL --销售量
) ON [PRIMARY]
GO
--插入测试数据

--SQL 语句
SELECT Area, CONVERT(varchar(10), Daytime, 120) AS daytime, TypeName, 
MAX(SellNumber) AS maxselln
FROM T_tb
GROUP BY TypeName, Daytime, Area
ORDER BY Daytime
--查询结果

------解决方案--------------------
SQL code
select * from tb t
where 销售量=(select max(销售量) from tb 
    where 地区=t.地区 and convert(char(10),时间,120))=convert(char(10),t.时间,120)))

------解决方案--------------------
SQL code
select
 * 
from
 tb t
where
 销售量=(select max(销售量) from tb where 地区=t.地区 and convert(varchar(10),时间,120))=convert(varchar(10),t.时间,120)))