Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.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-返回GROUP BY之前的最新记录_Mysql_Sql_Datetime_Group By - Fatal编程技术网

MYSQL-返回GROUP BY之前的最新记录

MYSQL-返回GROUP BY之前的最新记录,mysql,sql,datetime,group-by,Mysql,Sql,Datetime,Group By,我已经阅读了很多关于与此问题非常相似的问题的问题和答案,主要问题是他们使用LIMIT作为返回最新记录的解决方案,该记录不适用于此查询,因为我需要返回多个结果 逻辑如下: 当记录值生效时,每条记录都有一个生效日期 只有在今天或已经过生效日期的记录才可以收回 在我提取的记录中,根据为该记录输入的“日期”为我提供最新记录 到目前为止,除了这个查询的最后一点逻辑,我已经能够完成所有的工作。我不能在分组依据之后使用订单依据,因为结果已经分组,所以我无法使用MAX()日期。我需要执行WHERE语句中的逻

我已经阅读了很多关于与此问题非常相似的问题的问题和答案,主要问题是他们使用
LIMIT
作为返回最新记录的解决方案,该记录不适用于此查询,因为我需要返回多个结果

逻辑如下:

  • 当记录值生效时,每条记录都有一个生效日期
  • 只有在今天或已经过生效日期的
    记录才可以收回
  • 在我提取的记录中,根据为该记录输入的“
    日期”为我提供最新记录
到目前为止,除了这个查询的最后一点逻辑,我已经能够完成所有的工作。我不能在
分组依据
之后使用
订单依据
,因为结果已经分组,所以我无法使用
MAX()
日期。我需要执行
WHERE
语句中的逻辑

SELECT
    aos_products.`name`,
    cac_customize_agent_comp_cstm.commission_percentage_c,
    cac_customize_agent_comp.date_entered
FROM
    wn_writing_number
LEFT OUTER JOIN wn_writing_number_cac_customize_agent_comp_1_c ON wn_writing_number.id = wn_writing_number_cac_customize_agent_comp_1_c.wn_writing946b_number_ida
LEFT OUTER JOIN cac_customize_agent_comp_cstm ON wn_writing_number_cac_customize_agent_comp_1_c.wn_writing3148nt_comp_idb = cac_customize_agent_comp_cstm.id_c
LEFT OUTER JOIN cac_customize_agent_comp ON cac_customize_agent_comp_cstm.id_c = cac_customize_agent_comp.id
LEFT OUTER JOIN aos_products_cac_customize_agent_comp_1_c ON cac_customize_agent_comp_cstm.id_c = aos_products_cac_customize_agent_comp_1_c.aos_produca2b8nt_comp_idb
LEFT OUTER JOIN aos_products ON aos_products_cac_customize_agent_comp_1_c.aos_products_cac_customize_agent_comp_1aos_products_ida = aos_products.id
WHERE
    wn_writing_number.id = 'b556d816-f2e6-b78f-c776-576c0542585c'
AND wn_writing_number_cac_customize_agent_comp_1_c.deleted = '0'
AND cac_customize_agent_comp_cstm.effective_date_c <= CURDATE()
GROUP BY aos_products.`name`
和它返回的组一起

    +---------+-------------------------+----------------------+
    | name    | commission_percentage_c |     date_entered     |
    +---------+-------------------------+----------------------+
    | Val 2   | 14.75                   | 2016-07-07 15:04:02  |
    +---------+-------------------------+----------------------+
    | Val 1   | 15.25                   | 2016-07-06 23:57:28  |
    +---------+-------------------------+----------------------+
我想找回的是:

    +---------+-------------------------+----------------------+
    | name    | commission_percentage_c |     date_entered     |
    +---------+-------------------------+----------------------+
    | Val 2   | 14.75                   | 2016-07-07 15:04:02  |
    +---------+-------------------------+----------------------+
    | Val 1   | 16                      | 2016-07-07 00:31:08  |
    +---------+-------------------------+----------------------+
因为我需要最新的VAL 1记录,比如

WHERE the datediff BETWEEN NOW() and date_entered = the smallest amount of time compared with other records
用于最新日期时间

SELECT
aos_products.`name`,
cac_customize_agent_comp_cstm.commission_percentage_c,
max(cac_customize_agent_comp.date_entered) as  date_entered     
FROM
    wn_writing_number
LEFT OUTER JOIN wn_writing_number_cac_customize_agent_comp_1_c ON     wn_writing_number.id = wn_writing_number_cac_customize_agent_comp_1_c.wn_writing946b_number_ida
LEFT OUTER JOIN cac_customize_agent_comp_cstm ON wn_writing_number_cac_customize_agent_comp_1_c.wn_writing3148nt_comp_idb = cac_customize_agent_comp_cstm.id_c
LEFT OUTER JOIN cac_customize_agent_comp ON cac_customize_agent_comp_cstm.id_c = cac_customize_agent_comp.id
LEFT OUTER JOIN aos_products_cac_customize_agent_comp_1_c ON cac_customize_agent_comp_cstm.id_c = aos_products_cac_customize_agent_comp_1_c.aos_produca2b8nt_comp_idb
LEFT OUTER JOIN aos_products ON aos_products_cac_customize_agent_comp_1_c.aos_products_cac_customize_agent_comp_1aos_products_ida = aos_products.id
WHERE
    wn_writing_number.id = 'b556d816-f2e6-b78f-c776-576c0542585c'
AND wn_writing_number_cac_customize_agent_comp_1_c.deleted = '0'
AND cac_customize_agent_comp_cstm.effective_date_c <= CURDATE()
GROUP BY aos_products.`name`
选择
aos_产品。`name`,
cac、定制、代理、公司、佣金、百分比、,
输入日期的最大值(cac\u自定义\u代理\u公司日期)
从…起
wn_写入编号
左外连接wn_书写(编号)cac_定制(代理)comp_1_c ON wn_书写(编号)id=wn_书写(编号)cac_定制(代理)comp(编号)946b(
左外连接cac\u customize\u agent\u comp\u cstm ON wn\u writing\u number\u cac\u customize\u agent\u comp\u 1\u c.wn\u writing 3148NT\u comp\u idb=cac\u customize\u agent\u comp\u cstm.id\u c
左外连接cac\U自定义\U代理\U cac上的组件\U自定义\U代理\U组件\U cstm.id\U c=cac\U自定义\U代理\U组件id
左外连接aos\U产品\U cac\U定制\U代理\U comp\U 1\U c在cac\U定制\U代理\U comp\U cstm.id\U c=aos\U产品\U cac\U定制\U代理\U comp\U 1\U c.aos\U产品2B8NT\U comp\U idb
左外连接aos_产品上的aos_产品cac_定制_代理_组件1_c.aos_产品cac_定制_代理_组件1aos_产品ida=aos_产品id
哪里
wn_writing_number.id='b556d816-f2e6-b78f-c776-576c0542585c'
和wn_writing_number_cac_customize_agent_comp_1_c.deleted='0'
和cac_定制_代理_comp_cstm.effective_date_c用于最新日期时间

SELECT
aos_products.`name`,
cac_customize_agent_comp_cstm.commission_percentage_c,
max(cac_customize_agent_comp.date_entered) as  date_entered     
FROM
    wn_writing_number
LEFT OUTER JOIN wn_writing_number_cac_customize_agent_comp_1_c ON     wn_writing_number.id = wn_writing_number_cac_customize_agent_comp_1_c.wn_writing946b_number_ida
LEFT OUTER JOIN cac_customize_agent_comp_cstm ON wn_writing_number_cac_customize_agent_comp_1_c.wn_writing3148nt_comp_idb = cac_customize_agent_comp_cstm.id_c
LEFT OUTER JOIN cac_customize_agent_comp ON cac_customize_agent_comp_cstm.id_c = cac_customize_agent_comp.id
LEFT OUTER JOIN aos_products_cac_customize_agent_comp_1_c ON cac_customize_agent_comp_cstm.id_c = aos_products_cac_customize_agent_comp_1_c.aos_produca2b8nt_comp_idb
LEFT OUTER JOIN aos_products ON aos_products_cac_customize_agent_comp_1_c.aos_products_cac_customize_agent_comp_1aos_products_ida = aos_products.id
WHERE
    wn_writing_number.id = 'b556d816-f2e6-b78f-c776-576c0542585c'
AND wn_writing_number_cac_customize_agent_comp_1_c.deleted = '0'
AND cac_customize_agent_comp_cstm.effective_date_c <= CURDATE()
GROUP BY aos_products.`name`
选择
aos_产品。`name`,
cac、定制、代理、公司、佣金、百分比、,
输入日期的最大值(cac\u自定义\u代理\u公司日期)
从…起
wn_写入编号
左外连接wn_书写(编号)cac_定制(代理)comp_1_c ON wn_书写(编号)id=wn_书写(编号)cac_定制(代理)comp(编号)946b(
左外连接cac\u customize\u agent\u comp\u cstm ON wn\u writing\u number\u cac\u customize\u agent\u comp\u 1\u c.wn\u writing 3148NT\u comp\u idb=cac\u customize\u agent\u comp\u cstm.id\u c
左外连接cac\U自定义\U代理\U cac上的组件\U自定义\U代理\U组件\U cstm.id\U c=cac\U自定义\U代理\U组件id
左外连接aos\U产品\U cac\U定制\U代理\U comp\U 1\U c在cac\U定制\U代理\U comp\U cstm.id\U c=aos\U产品\U cac\U定制\U代理\U comp\U 1\U c.aos\U产品2B8NT\U comp\U idb
左外连接aos_产品上的aos_产品cac_定制_代理_组件1_c.aos_产品cac_定制_代理_组件1aos_产品ida=aos_产品id
哪里
wn_writing_number.id='b556d816-f2e6-b78f-c776-576c0542585c'
和wn_writing_number_cac_customize_agent_comp_1_c.deleted='0'
和cac_定制_代理_comp_cstm.effective_date_c试试这个

SELECT *
FROM
    (SELECT
        aos_products.`name` as name,
        cac_customize_agent_comp_cstm.commission_percentage_c as commission_percentage_c,
        cac_customize_agent_comp.date_entered as date_entered
    FROM
        wn_writing_number
    LEFT OUTER JOIN wn_writing_number_cac_customize_agent_comp_1_c ON wn_writing_number.id = wn_writing_number_cac_customize_agent_comp_1_c.wn_writing946b_number_ida
    LEFT OUTER JOIN cac_customize_agent_comp_cstm ON wn_writing_number_cac_customize_agent_comp_1_c.wn_writing3148nt_comp_idb = cac_customize_agent_comp_cstm.id_c
    LEFT OUTER JOIN cac_customize_agent_comp ON cac_customize_agent_comp_cstm.id_c = cac_customize_agent_comp.id
    LEFT OUTER JOIN aos_products_cac_customize_agent_comp_1_c ON cac_customize_agent_comp_cstm.id_c = aos_products_cac_customize_agent_comp_1_c.aos_produca2b8nt_comp_idb
    LEFT OUTER JOIN aos_products ON aos_products_cac_customize_agent_comp_1_c.aos_products_cac_customize_agent_comp_1aos_products_ida = aos_products.id
    WHERE
        wn_writing_number.id = 'b556d816-f2e6-b78f-c776-576c0542585c'
    AND wn_writing_number_cac_customize_agent_comp_1_c.deleted = '0'
    AND cac_customize_agent_comp_cstm.effective_date_c <= CURDATE()
    ORDER BY cac_customize_agent_comp.date_entered DESC) t
GROUP BY t.name
选择*
从…起
(选择
aos_products.`name`作为名称,
cac客户化代理公司佣金百分比作为佣金百分比,
cac\u定制\u代理\u公司日期\u输入为日期\u
从…起
wn_写入编号
左外连接wn_书写(编号)cac_定制(代理)comp_1_c ON wn_书写(编号)id=wn_书写(编号)cac_定制(代理)comp(编号)946b(
左外连接cac\u customize\u agent\u comp\u cstm ON wn\u writing\u number\u cac\u customize\u agent\u comp\u 1\u c.wn\u writing 3148NT\u comp\u idb=cac\u customize\u agent\u comp\u cstm.id\u c
左外连接cac\U自定义\U代理\U cac上的组件\U自定义\U代理\U组件\U cstm.id\U c=cac\U自定义\U代理\U组件id
左外连接aos\U产品\U cac\U定制\U代理\U comp\U 1\U c在cac\U定制\U代理\U comp\U cstm.id\U c=aos\U产品\U cac\U定制\U代理\U comp\U 1\U c.aos\U产品2B8NT\U comp\U idb
左外连接aos_产品上的aos_产品cac_定制_代理_组件1_c.aos_产品cac_定制_代理_组件1aos_产品ida=aos_产品id
哪里
wn_writing_number.id='b556d816-f2e6-b78f-c776-576c0542585c'
和wn_writing_number_cac_customize_agent_comp_1_c.deleted='0'
和cac_定制_代理_comp_cstm.effective_date_c试试这个

SELECT *
FROM
    (SELECT
        aos_products.`name` as name,
        cac_customize_agent_comp_cstm.commission_percentage_c as commission_percentage_c,
        cac_customize_agent_comp.date_entered as date_entered
    FROM
        wn_writing_number
    LEFT OUTER JOIN wn_writing_number_cac_customize_agent_comp_1_c ON wn_writing_number.id = wn_writing_number_cac_customize_agent_comp_1_c.wn_writing946b_number_ida
    LEFT OUTER JOIN cac_customize_agent_comp_cstm ON wn_writing_number_cac_customize_agent_comp_1_c.wn_writing3148nt_comp_idb = cac_customize_agent_comp_cstm.id_c
    LEFT OUTER JOIN cac_customize_agent_comp ON cac_customize_agent_comp_cstm.id_c = cac_customize_agent_comp.id
    LEFT OUTER JOIN aos_products_cac_customize_agent_comp_1_c ON cac_customize_agent_comp_cstm.id_c = aos_products_cac_customize_agent_comp_1_c.aos_produca2b8nt_comp_idb
    LEFT OUTER JOIN aos_products ON aos_products_cac_customize_agent_comp_1_c.aos_products_cac_customize_agent_comp_1aos_products_ida = aos_products.id
    WHERE
        wn_writing_number.id = 'b556d816-f2e6-b78f-c776-576c0542585c'
    AND wn_writing_number_cac_customize_agent_comp_1_c.deleted = '0'
    AND cac_customize_agent_comp_cstm.effective_date_c <= CURDATE()
    ORDER BY cac_customize_agent_comp.date_entered DESC) t
GROUP BY t.name
选择*
从…起
(选择
aos_products.`name`作为名称,
cac客户化代理公司佣金百分比作为佣金百分比,
cac\u定制\u代理\u公司日期\u输入为日期\u
从…起
wn_写入编号
左外连接wn_书写(编号)cac_定制(代理)comp_1_c ON wn_书写(编号)id=wn_书写(编号)cac_定制(代理)comp(编号)946b(
左外连接cac\u customize\u agent\u comp\u cstm ON wn\u writing\u number\u cac\u customize\u agent\u comp\u 1\u c.wn\u writing 3148NT\u comp\u idb=cac\u customize\u agent\u comp\u cstm.id\u c
左外连接cac\U自定义\U代理\U cac上的组件\U自定义\U代理\U组件\U cstm.id\U c=cac\U自定义\U代理\U组件id
左外连接aos\U产品\U cac\U定制\U代理\U comp\U 1\U c在cac\U定制\U代理\U comp\U cstm.id\U c=aos\U产品\U cac\U定制\U代理\U comp\U 1\U c.aos\U产品2B8NT\U comp\U idb
左外连接aos_产品上的aos_产品cac_定制_代理_组件1_c.aos_产品cac_定制_代理_组件1aos_产品ida=aos_产品id
哪里
wn_writing_number.id='b556d816-f2e6-b78f-c776-576c0542585c'
和wn_writing_number_cac_customize_agent_comp_1_c.deleted='0'
和cac_定制_代理_comp_cstm.effective_date_c使用输入日期的
max()