我有一个包含很多列和行的表,例如以下示例:



我正在尝试查找部分完成的订单,以便对于具有Item Line值的订单至少有一个Goods Issue Date记录,对于没有Item Line记录>价值。我可以轻松获得根本没有发货日期的订单,但是我需要知道一些带有日期的项目行而没有日期的项目行。

查看上面的示例数据,我应该只看到订单1的结果,因为订单2,3和5都已完全完成,而订单4尚未开始。

最佳答案

SELECT
    *
FROM
    theTable t1
WHERE
    t1.`Goods Issue Date` IS NULL
    AND EXISTS ( SELECT
                    *
                 FROM
                    theTable t2
                 WHERE
                    t2.`Order` = t1.`Order`
                    AND t2.`Goods Issue Date` IS NOT NULL );


DEMO

如果IN是不可为空的,也可以使用简单的Order

SELECT  *
FROM    theTable
WHERE   `Goods Issue Date` IS NULL
        AND `Order` IN (
           SELECT  `Order`
           FROM    theTable
           WHERE   `Goods Issue Date` IS NOT NULL
        )

关于mysql - SQL查询,检查在A列中具有相同值的单元格在B列中是否具有相同的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34438783/

10-16 14:46