gpt4 book ai didi

mysql - 如果 B 列是最早的日期,则在 A 列中显示值。

转载 作者:行者123 更新时间:2023-11-30 23:19:41 25 4
gpt4 key购买 nike

我在下表中遇到困难。表 A 只是执行我的脚本时我当前表的一部分,还有其他列和行,但我只是取出其中的一部分,我认为这对理解我的问题很有用。场景:客户购买 10 件序列号为 IA003 的 itemA,但当我执行查询时,它显示 TABLE A 结果。我想要的只是当客户订购 10 件特定商品时,它应该与该商品的序列号一起显示,而不是所有具有该商品名称的序列号。或者,如果客户订购了 ItemA,那么无论它有什么序列号,它都会查找最近的到期日期。 非常感谢

### Table A ### 

ITEMNAME || SERIALS || EXPIRATION DATE || SO_QTY
ITEM A IA0001 2014-01-20 10
ITEM A IA0002 2014-01-01 10
ITEM A IA0003 2013-05-13 10
ITEM B IB001 2012-11-08 15
ITEM B IB002 2015-12-28 15
ITEM B IB003 2014-06-01 15


### how will i get this output? ###

### 表 A ###

ITEMNAME      SERIALS      EXPIRATION DATE       SO_QTY      
ITEM A IA0001 2014-01-20
ITEM A IA0002 2014-01-01
ITEM A IA0003 2013-05-13 10
ITEM B IB001 2012-11-08 15
ITEM B IB002 2015-12-28
ITEM B IB003 2014-06-01

最佳答案

您可以使用子查询连接表,获取最旧的 EXPIRATIONDATE对于每个 Itemname ,使用 LEFT JOIN所以你可以测试记录是否是每个ItemName的最旧记录.

SELECT  a.ItemName,
a.Serials,
a.EXPIRATIONDATE,
IF(b.Itemname IS NULL, NULL, a.SO_QTY) SO_QTY
FROM TableA a
LEFT JOIN
(
SELECT Itemname, MIN(EXPIRATIONDATE) min_date
FROM TableA
GROUP BY ItemName
) b ON a.Itemname = b.Itemname AND
a.EXPIRATIONDATE = b.min_date

关于mysql - 如果 B 列是最早的日期,则在 A 列中显示值。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16050388/

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