数据量比较大,想实现结果:张三 2011-6-18 .....(后面字段省略)
李四 2011-6-18 .....
小五 2011-6-17 .....张三 2011-6-17 .....
李四 2011-6-17 .....
小五 2011-6-16 ........
...
...对于group by有点郁闷,因为字段很多,难道要全部都弄出来。不是特别懂。求救!!急呢,如果再弄不出,我就要滚蛋了
李四 2011-6-18 .....
小五 2011-6-17 .....张三 2011-6-17 .....
李四 2011-6-17 .....
小五 2011-6-16 ........
...
...对于group by有点郁闷,因为字段很多,难道要全部都弄出来。不是特别懂。求救!!急呢,如果再弄不出,我就要滚蛋了
select * from datable
group by 时间字段
order by 时间字段 desc
只要不在group by后的字段查询出来的字段要有聚合函数如max(字段名)
select * from datable
group by 时间字段,名字字段
order by 时间字段 desc
只要不在group by后的字段查询出来的字段要有聚合函数如max(字段名)
选择列表中的列 'id' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
select * from datatable order by 姓名,日期 desc这样?
(select top ([pageindex]*[pagesize]) rdate from datatable order by 姓名,日期 desc) order by 姓名,日期 desc数据量大的话可以给表按这个排序建个索引。
是的,group的话,全部都会归为一组,还真是摸不着头脑了
INSERT dbo.tbtmp
SELECT '张三', '2011-6-18 00:00:01.....' UNION ALL
SELECT '张三', '2011-6-18 00:00:02 ' UNION ALL
SELECT '李四', '2011-6-18 00:00:20.....' UNION ALL
SELECT '李四', '2011-6-18 00:00:40.....' UNION ALL
SELECT '小五', '2011-6-18 00:02:20.....' UNION ALL
SELECT '小五', '2011-6-18 00:04:20.....' UNION ALL
SELECT '张三', '2011-6-17 00:00:01.....' UNION ALL
SELECT '张三', '2011-6-17 00:00:02 ' UNION ALL
SELECT '李四', '2011-6-17 00:00:20.....' UNION ALL
SELECT '李四', '2011-6-17 00:00:40.....' UNION ALL
SELECT '小五', '2011-6-17 00:02:20.....' UNION ALL
SELECT '小五', '2011-6-17 00:04:20.....'SELECT a.[name] ,
LEFT(a.[time], 9) AS [time]
FROM dbo.tbtmp a
WHERE NOT EXISTS ( SELECT 1
FROM dbo.tbtmp
WHERE [name] = a.[name]
AND LEFT([time], 9) = LEFT(a.[time], 9)
AND LEFT([time], 18) > LEFT(a.[time], 18) )DROP TABLE dbo.tbtmp
/*
name time
---------- ------------------
张三 2011-6-18
李四 2011-6-18
小五 2011-6-18
张三 2011-6-17
李四 2011-6-17
小五 2011-6-17(6 行受影响)
*/
select * from datable
group by 时间字段,名字字段,id字段,。
order by 时间字段 desc