这可以在一个查询中完成吗?
这是我的数据库结构:
ID PRICE DATE CODE
1 23 2011-02-01 23:23:23 AAA
2 23 2011-02-04 22:01:01 BBB
3 25 2011-02-05 00:00:01 AAA
4 21 2011-01-09 00:00:00 BBB
5 20 2011-02-09 00:00:00 BBB
我正在尝试构建一个SQL查询,该查询将生成PRICE
在大于2011-01-30 23:59:59
的所有日期中超过22的行
因此,如果我们以上述结构为例,它将生成一行,在{2}大于CODE
的两个日期中价格高于22时,会给出2011-01-30 23:59:59
AAA。 BBB不应该匹配,因为即使它在截止日期之后的价格高于22,它也会在截止日期之后的价格不超过22。
答案 0 :(得分:2)
这应该适合你:
SELECT code FROM table
WHERE date > '2011-01-30 23:59:59'
GROUP BY code HAVING MIN(price) > 22
您可以从具有可接受日期的行中获取代码,并检查每个唯一代码的最低价格(以及所有价格)是否超过22。
答案 1 :(得分:1)
答案 2 :(得分:1)
SELECT CODE
FROM mytable
WHERE DATE >= '2011-01-31'
GROUP BY CODE
HAVING MIN(PRICE) > 22
答案 3 :(得分:0)