我正在使用2个步骤的应用程序。
第一步或多或少已经完成。我尝试通过第二步来解释背景和要求。
数据库中的每一行都包含一些信息,例如logdate,logfilename,LogType,logMessage等。因此,我想例如编写SQL来总结每天的给定LogType。
这是列:
[LogDate] [datetime] NOT NULL, [Computer] [varchar](50) NOT NULL, [Type] [varchar](50) NOT NULL, [FileName] [varchar](100) NOT NULL, [LineNo] [int] NOT NULL, [UserName] [varchar](50) NOT NULL, [Message] [varchar](max) NOT NULL,
我想如果我想显示Type = TDBError的所有行,输出可能是这样的:
Date Sum 2012-10-01 3 2012-10-02 12 2012-10-03 40 2012-10-05 24 2012-10-06 18
因此,在2012年10月1日,数据库中有3行,其中Type = TDBError。截至2012年10月2日,共有12个,等等。
我应该如何为此编写SQL?
假设使用SQL Server 2008或更高版本:
SELECT [Date] = CONVERT(DATE, LogDate), [Sum] = COUNT(*) FROM dbo.Log_Table_Name WHERE [Type] = 'DBError' GROUP BY CONVERT(DATE, LogDate) ORDER BY [Date];