MySQL:按Min&;最大值
我有以下疑问 选择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 结果: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
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)之间。