按一个字段查询最小值所在的行显示出来
测试数据如下:
就是按h01字段查询h04字段的最小值,然后把这个最小值所在的行显示出来,如果有多行,显示一行就行了。
--创建数据表Table1
CREATE TABLE [dbo].[Table1] (
	[h01] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
	[h02] [datetime] NOT NULL ,
	[h03] [int] NOT NULL ,
	[h04] [float] NULL 
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Table1] WITH NOCHECK ADD 
	CONSTRAINT [PK_Table1] PRIMARY KEY  CLUSTERED 
	(
		[h01],
		[h02],
		[h03]
	)  ON [PRIMARY] 
GO
--插入测试数据
INSERT [Table1] ( [h01] , [h02] , [h03] , [h04] ) VALUES ( '1001' , '2013-10-10 00:00:00.000' , 2 , 15222.43 )
INSERT [Table1] ( [h01] , [h02] , [h03] , [h04] ) VALUES ( '1001' , '2013-10-10 00:00:00.000' , 3 , 99164.040000000008 )
INSERT [Table1] ( [h01] , [h02] , [h03] , [h04] ) VALUES ( '1001' , '2013-10-14 00:00:00.000' , 1 , 46186.309999999998 )
INSERT [Table1] ( [h01] , [h02] , [h03] , [h04] ) VALUES ( '1001' , '2013-10-14 00:00:00.000' , 2 , 20046.330000000002 )
INSERT [Table1] ( [h01] , [h02] , [h03] , [h04] ) VALUES ( '1001' , '2013-10-14 00:00:00.000' , 3 , 88719.600000000006 )
INSERT [Table1] ( [h01] , [h02] , [h03] , [h04] ) VALUES ( '3520' , '2013-10-10 00:00:00.000' , 1 , 35707.200000000004 )
INSERT [Table1] ( [h01] , [h02] , [h03] , [h04] ) VALUES ( '3520' , '2013-10-10 00:00:00.000' , 2 , 1.0 )
INSERT [Table1] ( [h01] , [h02] , [h03] , [h04] ) VALUES ( '3520' , '2013-10-10 00:00:00.000' , 3 , 56563.790000000001 )
INSERT [Table1] ( [h01] , [h02] , [h03] , [h04] ) VALUES ( '3520' , '2013-10-14 00:00:00.000' , 1 , 31452.029999999999 )
INSERT [Table1] ( [h01] , [h02] , [h03] , [h04] ) VALUES ( '3520' , '2013-10-14 00:00:00.000' , 2 , 1.0 )
INSERT [Table1] ( [h01] , [h02] , [h03] , [h04] ) VALUES ( '3520' , '2013-10-14 00:00:00.000' , 3 , 50448.050000000003 )
go
想得到结果如下
h01	h02	         h03	h04
1001	2013-10-10 0:00	  2	15222.43
3520	2013-10-10 0:00	  2	1
              
------解决方案--------------------1楼有误