2009-11-17 40 views
1

我在编写查询时遇到问题。目前我可以检索每台机器每小时百分比的记录,并且我有一张表格,每天显示每台机器每小时记录的每个百分比。代码如下所示:SQL Server中的查询问题

....... 
WHERE  (tblCheckResult.DateTime >= @DateFrom) 
AND (tblCheckResult.DateTime <= DateTo) AND (tblCheck.CheckID = 69) 
....... 

CheckID是百分比的ID。我想要做的是显示平均每月录音和每年录音1月80%,2月95%等任何人都可以请指教?

感谢

回答

4

您可以使用日期分量来检索月份部分/年部分和组那些。

像这样的事情

DECLARE @Table TABLE(
     DVal DATETIME, 
     Val FLOAT 
) 


INSERT INTO @Table (DVal,Val) SELECT '01 Jan 2008', 10 
INSERT INTO @Table (DVal,Val) SELECT '02 Jan 2008', 20 
INSERT INTO @Table (DVal,Val) SELECT '03 Jan 2008', 30 
INSERT INTO @Table (DVal,Val) SELECT '04 Jan 2008', 40 
INSERT INTO @Table (DVal,Val) SELECT '05 Jan 2008', 50 
INSERT INTO @Table (DVal,Val) SELECT '06 Jan 2008', 60 

INSERT INTO @Table (DVal,Val) SELECT '01 Feb 2008', 11 
INSERT INTO @Table (DVal,Val) SELECT '02 Feb 2008', 22 
INSERT INTO @Table (DVal,Val) SELECT '03 Feb 2008', 33 
INSERT INTO @Table (DVal,Val) SELECT '04 Feb 2008', 44 
INSERT INTO @Table (DVal,Val) SELECT '05 Feb 2008', 55 
INSERT INTO @Table (DVal,Val) SELECT '06 Feb 2008', 66 


INSERT INTO @Table (DVal,Val) SELECT '01 Jan 2009', 16 
INSERT INTO @Table (DVal,Val) SELECT '02 Jan 2009', 26 
INSERT INTO @Table (DVal,Val) SELECT '03 Jan 2009', 36 
INSERT INTO @Table (DVal,Val) SELECT '04 Jan 2009', 46 
INSERT INTO @Table (DVal,Val) SELECT '05 Jan 2009', 56 
INSERT INTO @Table (DVal,Val) SELECT '06 Jan 2009', 66 

INSERT INTO @Table (DVal,Val) SELECT '01 Feb 2009', 17 
INSERT INTO @Table (DVal,Val) SELECT '02 Feb 2009', 27 
INSERT INTO @Table (DVal,Val) SELECT '03 Feb 2009', 37 
INSERT INTO @Table (DVal,Val) SELECT '04 Feb 2009', 47 
INSERT INTO @Table (DVal,Val) SELECT '05 Feb 2009', 57 
INSERT INTO @Table (DVal,Val) SELECT '06 Feb 2009', 67 


SELECT DATEPART(yy, DVal) YearPart, 
     DATEPART(MM, DVal) MonthPart, 
     AVG(Val) 
FROM @Table 
GROUP BY DATEPART(yy, DVal), 
     DATEPART(MM, DVal) 

SELECT DATEPART(yy, DVal) YearPart, 
     AVG(Val) 
FROM @Table 
GROUP BY DATEPART(yy, DVal) 
1

我认为你是不正确输入SQL查询。为了避免这个问题,你应该写

insert into table <table_name> select <value>; 

如果你是在执行查询遇到问题,那么你应该对SQL查询网上查询。如果问题依然存在,那么SQL数据库中可能会有损坏。在这种情况下,您需要使用stellar SQL recovery应用程序来解决这个问题。