gpt4 book ai didi

mysql - 在 where 子句中使用多个 AND 的 SELECT 查询

转载 作者:行者123 更新时间:2023-11-29 00:11:33 25 4
gpt4 key购买 nike

我是 mysql 新手,需要帮助。我有一个如下表,我正在尝试运行类似于下面所示的 sql 查询。我在按以下格式定义年份时遇到问题。

我的预期查询是查找所有 5 年的销售额 > 20、利润 > 20 和 tsv > 10 的项目代码。如果连一个年份都没有比较值,就不应该列出来。

select Item from inventory 
WHERE Sales > 20 AND Profit> 20 and TSV > 10
AND YEAR ( 2010 AND 2011 AND 2013 AND 2009 AND 2012)



+----------+-----------+--------+----------+-----------+--------+
| Item | YEAR | Sales | Profit | TSV | REC |
+----------+-----------+--------+----------+-----------+--------+
| machine | 2011 | 10| 10 | 20 | 10 |
| machine | 2010 | 8 | 15 | 6 | 2 |
| machine | 2013 | 15| 5 | 11 | 5 |
| machine | 2009 | 3 | 8 | 9 | 13 |
| machine | 2012 | 6 | 12 | 18 | 16 |
| decors | 2010 | 11| 10 | 13 | 22 |
| decors | 2011 | 9 | 9 | 16 | 12 |
| decors | 2012 | 3 | 7 | 11 | 9 |
| decors | 2013 | 13| 23 | 9 | 10 |
| decors | 2009 | 4 | 9 | 10 | 8 |
| sp parts | 2009 | 22| 25 | 17 | 22 |
| sp parts | 2010 | 21| 22 | 11 | 14 |
| sp parts | 2011 | 28| 30 | 29 | 23 |
| sp parts | 2012 | 23| 28 | 12 | 8 |
| sp parts | 2013 | 21| 24 | 24 | 32 |
-----------------------------------------------------------------

最佳答案

这应该可以解决问题,通过使用 count 和 group by 检查每个不同的年份

SELECT Item FROM 
inventory
WHERE Sales > 20 AND Profit> 20 AND TSV > 10
AND `YEAR` IN( 2010,2011,2013,2009,2012)
GROUP BY Item
HAVING COUNT(DISTINCT `YEAR`) =5

Demo

关于mysql - 在 where 子句中使用多个 AND 的 SELECT 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24847710/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com