我有一个查询,我试图从夏季期间选择最大值(此处为nov-april),但它只给出了来自nov-dec的值与此查询。有什么想法吗?
SELECT TOP 10 Value, DateTime
FROM history
WHERE Tagname = @Tag
AND
((DateTime >= @StartYear AND DateTime < @StartWinter)
OR
(DateTime >= @FinishWinter AND DateTime < @FinishYear))
ORDER BY Value DESC
答案 0 :(得分:0)
(DateTime&gt; = startYear和datetime&lt; startwinter)为您提供jan和2009年4月之间的所有结果。 (Datetime&gt; finishwinter和datetime&lt; finishyear)给出了09年11月11日的所有结果。
所以,你从2009年1月2月3月4月选择前10名。如果这是你想要选择的,而你只是在2009年12月11日获得价值,请检查是否应该有值其他几个月?
如果@startwinter不是年敏感的话,你也可能会在2010年1月1日获得。
答案 1 :(得分:0)
使用'TOP 10'时,你不应该使用'ORDER BY'吗?
你住在哪个地方,或者改写它:什么是合理的日期(@StartYear,@ StartWinter,@ FinishWinter,@ FinishYear)
在欧洲我期待:
所以第一期从2010-01-01到2010-12-20(约),第二期从2010年3月到年底。
所以这将包括全年,其中大部分,从03.20到12.20两倍。
答案 2 :(得分:0)
嘿谢谢大家的帮助,这似乎是我们的历史记录(来自sql server的链接数据库)的一个问题所以我会用它们解决问题。我在常规的mssql db上尝试了查询,看起来很好......