gpt4 book ai didi

mysql - 在 cel 值后从表中选择

转载 作者:可可西里 更新时间:2023-11-01 08:25:00 26 4
gpt4 key购买 nike

我想从 MySQL 表中选择最后一个值之后的所有记录。这是一个例子

我的表格

+--------------------+--------------------+--------------------+--------------------+
| date (DATE) |Product_id (INT fk)| Quantite (INT) |type (ENUM('S', 'R')|
+--------------------+--------------------+--------------------+--------------------+
| 2016-09-20 | 1 | 15 | R |
| 2016-09-21 | 1 | 20 | S |
| 2016-09-23 | 1 | 19 | R |
| 2016-09-28 | 1 | 30 | S |
| 2016-09-30 | 1 | 20 | S |
+--------------------+--------------------+--------------------+--------------------+

我想要一个查询来获取类型为 S 的最后一行

这是我需要的输出

+--------------------+--------------------+--------------------+--------------------+
| date (DATE) |Product_id (INT fk)| Quantite (INT) |type (ENUM('S', 'R')|
+--------------------+--------------------+--------------------+--------------------+
| 2016-09-28 | 1 | 30 | S |
| 2016-09-30 | 1 | 20 | S |
+--------------------+--------------------+--------------------+--------------------+

最佳答案

只需使用 LIMIT :

SELECT *
FROM YourTable t
WHERE t.type = 'S'
ORDER BY t.date DESC
LIMIT 1;

如果你想为每个 ID 使用它,那么你可以使用 NOT EXISTS() :

SELECT * FROM YourTable t
WHERE NOT EXISTS (SELECT 1 FROM YourTable s
WHERE s.product_id = t.product_id
AND s.type = 'S'
AND s.date > t.date)
AND t.type = 'S'

编辑:如果我理解正确的话,如果是的话,您需要在最后一条类型为 R 的记录之后添加类型为 S 的所有记录:

SELECT * FROM YourTable t
WHERE NOT EXISTS (SELECT 1 FROM YourTable s
WHERE s.product_id = t.product_id
AND s.type = 'R'
AND s.date > t.date)
AND t.type = 'S'

关于mysql - 在 cel 值后从表中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39506656/

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