跪求一条SQL命令....蛮复杂的.. 50mysticby]

发布时间:2016-12-11 18:01:10 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"跪求一条SQL命令....蛮复杂的.. 50mysticby]",主要涉及到跪求一条SQL命令....蛮复杂的.. 50mysticby]方面的内容,对于跪求一条SQL命令....蛮复杂的.. 50mysticby]感兴趣的同学可以参考一下。

表: AddDate               Class 2009-10-30 02:00:00   新闻 2009-10-29 02:00:00   新闻 2009-10-28 02:00:00   新闻 2009-10-20 02:00:00   娱乐 2009-10-29 02:00:00   情感 得出: 栏目几天未更新!(也就是取各栏目最大的时间 和 当前时间做比较得出结果) 预想结果: 栏目  未更新时间(单位:天) 娱乐      13 情感      4 新闻      3

--> 测试数据:[TB] if object_id('[TB]') is not null drop table [TB] create table [TB]([AddDate] datetime,[Class] varchar(4)) insert [TB] select '2009-10-30 02:00:00','新闻' union all select '2009-10-29 02:00:00','新闻' union all select '2009-10-28 02:00:00','新闻' union all select '2009-10-20 02:00:00','娱乐' union all select '2009-10-29 02:00:00','情感' select 栏目=Class, [未更新时间(单位:天)]=datediff(dd,max(AddDate),getdate()) from [TB] group by Class /* 栏目   未更新时间(单位:天)  ---- -----------  情感   4 新闻   3 娱乐   13 (所影响的行数为 3 行) */

引用 1 楼 jiangshun 的回复:SQL code--> 测试数据:[TB]ifobject_id('[TB]')isnotnulldroptable[TB]createtable[TB]([AddDate]datetime,[Class]varchar(4))insert[TB]select'2009-10-30 02:00:00','新闻'unionallselect'2009-10-29 02:00:00','新闻'unio¡­ ----正解!

引用 1 楼 jiangshun 的回复:SQL code--> 测试数据:[TB]ifobject_id('[TB]')isnotnulldroptable[TB]createtable[TB]([AddDate]datetime,[Class]varchar(4))insert[TB]select'2009-10-30 02:00:00','新闻'unionallselect'2009-10-29 02:00:00','新闻'unio¡­ ...

--> 测试数据:[TB] if object_id('[TB]') is not null drop table [TB] create table [TB]([AddDate] datetime,[Class] varchar(4)) insert [TB] select '2009-10-30 02:00:00','新闻' union all select '2009-10-29 02:00:00','新闻' union all select '2009-10-28 02:00:00','新闻' union all select '2009-10-20 02:00:00','娱乐' union all select '2009-10-29 02:00:00','情感' SELECT  Class, MAX(DATEDIFF(DD,AddDate,GETDATE()))AS [时间]  FROM  TB  GROUP BY  Class  ORDER BY  [时间] DESC (所影响的行数为 5 行) Class 时间           ----- -----------  娱乐    13 新闻    5 情感    4 (所影响的行数为 3 行)

那么快就解决了,行列转换再加个日期函数.

if object_id('[TB]') is not null drop table [TB] create table [TB]([AddDate] datetime,[Class] varchar(4)) insert [TB] select '2009-10-30 02:00:00','新闻' union all select '2009-10-29 02:00:00','新闻' union all select '2009-10-28 02:00:00','新闻' union all select '2009-10-20 02:00:00','娱乐' union all select '2009-10-29 02:00:00','情感' select datediff(day,max([AddDate]),getdate()) as  '未更新时间',[Class] from [TB] group by [Class] 未更新时间       Class ----------- ----- 4           情感 3           新闻 13          娱乐 (3 行受影响)

---------------------------------------------------------------- -- Author  :fredrickhu(我是小F,向高手学习) -- Date    :2009-11-02 09:01:55 -- Version: --      Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86)  -- Nov 24 2008 13:01:59  -- Copyright (c) 1988-2005 Microsoft Corporation -- Developer Edition on Windows NT 5.2 (Build 3790: Service Pack 1) -- ---------------------------------------------------------------- --> 测试数据:[tb] if object_id('[tb]') is not null drop table [tb] go  create table [tb]([AddDate] datetime,[Class] varchar(4)) insert [tb] select '2009-10-30 02:00:00','新闻' union all select '2009-10-29 02:00:00','新闻' union all select '2009-10-28 02:00:00','新闻' union all select '2009-10-20 02:00:00','娱乐' union all select '2009-10-29 02:00:00','情感' --------------开始查询-------------------------- select   [Class] as 栏目,    datediff(day,max([AddDate]),getdate()) as  未更新时间 from    [TB]  group by    [Class] ----------------结果---------------------------- /* 栏目   未更新时间 ---- ----------- 情感   4 新闻   3 娱乐   13 (3 行受影响) */

---------------------------------------------------------------- -- Author  :fredrickhu(我是小F,向高手学习) -- Date    :2009-11-02 09:01:55 -- Version: --      Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86)  -- Nov 24 2008 13:01:59  -- Copyright (c) 1988-2005 Microsoft Corporation -- Developer Edition on Windows NT 5.2 (Build 3790: Service Pack 1) -- ---------------------------------------------------------------- --> 测试数据:[tb] if object_id('[tb]') is not null drop table [tb] go  create table [tb]([AddDate] datetime,[Class] varchar(4)) insert [tb] select '2009-10-30 02:00:00','新闻' union all select '2009-10-29 02:00:00','新闻' union all select '2009-10-28 02:00:00','新闻' union all select '2009-10-20 02:00:00','娱乐' union all select '2009-10-29 02:00:00','情感' --------------开始查询-------------------------- select   [Class] as 栏目,    datediff(day,[AddDate],getdate()) as  未更新时间 from    [TB] t where    not exists(select 1 from tb where Class=t.Class and AddDate>t.AddDate) ----------------结果---------------------------- /* 栏目   未更新时间 ---- ----------- 情感   4 新闻   3 娱乐   13 (3 行受影响) */

create table #temp ( Adddate datetime, Class nvarchar(50) ) insert into #temp select '2009-10-30 02:00:00','News' union all select '2009-10-29 02:00:00','News' union all select '2009-10-28 02:00:00','News' union all select '2009-10-20 02:00:00','funny' union all select '2009-10-29 02:00:00','emotion' select Class,Last_Updatetime=datediff(dd,max(Adddate),getdate()) from #temp group by class order by Last_Updatetime DESC drop table #temp

学习!

select Class as 栏目, datediff(day,max(AddDate),getdate()) as  未更新时间 from tb group by Class 

接分

学习

if object_id('[tb]') is not null drop table [tb] create table [tb]([AddDate] datetime,[Class] varchar(4)) insert [tb] select '2009-10-30 02:00:00','新闻' union all select '2009-10-29 02:00:00','新闻' union all select '2009-10-28 02:00:00','新闻' union all select '2009-10-20 02:00:00','娱乐' union all select '2009-10-29 02:00:00','情感' select * from (select Class,datediff(dd,max(AddDate),getdate())as date from tb group by Class)a order by a.date

汗~  看不懂呢 

SELECT DateDiff(dd,Max(tb.[adddate]),getdate()) AS [days], tb.class FROM tb GROUP BY tb.class;

select class, datediff(day,max([AddDate]),getdate())  from table group by class

mark

Create Table #t1( AddDate DateTime, Class varchar(50)) Insert Into #t1 Select '2009-10-30 02:00:00', '新闻' Union All Select '2009-10-29 02:00:00', '新闻' Union All Select '2009-10-28 02:00:00', '新闻' Union All Select '2009-10-20 02:00:00', '娱乐' Union All Select '2009-10-29 02:00:00', '情感' Select Class As '栏目', DateDiff(Day, Max(AddDate), GetDate()) As '未更新时间' From #t1 Group By Class

恩...

这个看起来不复杂啊!

declare @tb table([AddDate] datetime,[Class] varchar(4)) insert @tb select '2009-10-30 02:00:00','新闻' union all select '2009-10-29 02:00:00','新闻' union all select '2009-10-28 02:00:00','新闻' union all select '2009-10-20 02:00:00','娱乐' union all select '2009-10-29 02:00:00','情感' SELECT CLASS AS 栏目, DATEDIFF(DD, MAX(ADDDATE),GETDATE()) AS [未更新时间(单位:天] FROM @TB GROUP BY CLASS --测试结果: /* 栏目   未更新时间(单位:天 ---- ----------- 情感   23 新闻   22 娱乐   32 */

xuexi!!!!!!!!

up

SELECT Class,DateDiff(d,FMaxDate,GetDate()) AS FDays FROM ( SELECT Class,Max(AddDate) AS FMaxDate FROM 栏目表 GROUP BY Class ) t

上一篇:请问:该如何设计这个表结构 100leetow2003]
下一篇:【学习 APPLY 和 TOP 用法】 20js_szy]

相关文章

相关评论