Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL:按Min&;最大值_Mysql - Fatal编程技术网

MySQL:按Min&;最大值

MySQL:按Min&;最大值,mysql,Mysql,我有以下疑问 选择cped.entity\u id,cped.value FROM sales\u order so LEFT JOIN 销售\订单\ so.entity\ id=soi.order\ id左联接上的物料soi 目录\产品\实体\ soi.product\ id上的cped日期时间= (153154)中的cped.entity_id和cped.attribute_id 结果: entity_id value 2340 2017-03-01 00:00:00

我有以下疑问

选择cped.entity\u id,cped.value FROM sales\u order so LEFT JOIN 销售\订单\ so.entity\ id=soi.order\ id左联接上的物料soi 目录\产品\实体\ soi.product\ id上的cped日期时间= (153154)中的cped.entity_id和cped.attribute_id

结果:

entity_id   value   
2340        2017-03-01 00:00:00
2340        2017-03-16 00:00:00
2312        2017-03-01 00:00:00
2312        2017-03-31 00:00:00
需要输出:

entity_id   value   
2340        2017-03-01 00:00:00 // Start Date
2340        2017-03-16 00:00:00 // End Date
因此,我们必须将最小值和最大值与当前日期进行比较。两者都小于当前日期,则应显示结果。我尝试使用“有”,但工作不正常。

如果您想要日期早于当前日期的实体,可以使用聚合:

SELECT cped.entity_id, GROUP_CONCAT(cped.value ORDER BY cped_value) as values
FROM sales_order so JOIN
     sales_order_item soi
     ON so.entity_id = soi.order_id JOIN
     catalog_product_entity_datetime cped
     ON soi.product_id = cped.entity_id AND
        cped.attribute_id IN (153,154)
GROUP BY cped.entity_id
HAVING  MAXcped_value) < CURDATE();  -- This condition is sufficient
选择cped.entity\u id、GROUP\u CONCAT(cped.value按cped\u value排序)作为值
从销售订单开始加入
销售\订单\项目soi
ON so.entity_id=soi.order_id JOIN
目录\产品\实体\日期时间cped
关于soi.product_id=cped.entity_id和
cped.attribute_id IN(153154)
按cped.entity\u id分组
具有MAXcped_值)
这包括第二列以及列表中的值

如果您确实需要原始行,则可以将其作为子查询,并连接回所需的原始值。

如果您需要日期早于当前日期的实体,可以使用聚合:

SELECT cped.entity_id, GROUP_CONCAT(cped.value ORDER BY cped_value) as values
FROM sales_order so JOIN
     sales_order_item soi
     ON so.entity_id = soi.order_id JOIN
     catalog_product_entity_datetime cped
     ON soi.product_id = cped.entity_id AND
        cped.attribute_id IN (153,154)
GROUP BY cped.entity_id
HAVING  MAXcped_value) < CURDATE();  -- This condition is sufficient
选择cped.entity\u id、GROUP\u CONCAT(cped.value按cped\u value排序)作为值
从销售订单开始加入
销售\订单\项目soi
ON so.entity_id=soi.order_id JOIN
目录\产品\实体\日期时间cped
关于soi.product_id=cped.entity_id和
cped.attribute_id IN(153154)
按cped.entity\u id分组
具有MAXcped_值)
这包括第二列以及列表中的值


如果您确实需要原始行,那么您可以将其作为子查询,并连接回您想要的原始值。

您的语句和结果没有意义。所有四个日期都在当前日期之前(至少在我所在的位置)。抱歉@GordonLinoff更新了数据您的陈述和结果没有意义。所有四个日期都在当前日期之前(至少在我所在的位置)。抱歉@GordonLinoff更新数据这对我有效
选择cped.entity\u id,GROUP\u CONCAT(cped.value)从销售日期到订单日期so加入销售订单项目soi ON so.entity\u id=soi.order\u id LEFT JOIN catalog\u product\u entity\u datetime soi.product\u id=cped.entity\u id其中cped.entity\u id在(153154)组中的cped.attribute\u id现在()不在MIN(cped.value)和MAX(cped.value)之间
这对我有效
选择cped.entity\u id,组CONCAT(cped.value)为销售日期,so.entity上的so.JOIN sales\u order\u item soi上的so.entity\u id=soi.order\u id左侧的JOIN catalog\u product\u entity\u datetime cped上的soi.product\u id=cped.entity\u id,其中cped.entity\u id在(153154)组中的cped.attribute\u id现在()不在MIN(cped.value)和MAX(cped.value)之间。