gpt4 book ai didi

php - CakePHP 查找最近的日期

转载 作者:行者123 更新时间:2023-11-30 23:06:45 24 4
gpt4 key购买 nike

编辑:我想通了。在底部查看我的解决方案。

我正在尝试查询最近的 activity.date 不在过去 30 天和 future 30 天之间的所有行。换句话说,如果他们在上个月有事件,就不要选择他们。这是现在发送到 find() 的数组:

'Declined' => array(
'conditions' => array(
'Program.deal_status' => 'declined',
"Program.date_submitted > DATE_SUB(CURDATE(), INTERVAL 60 DAY)",
'Activity.date NOT BETWEEN DATE_SUB(CURDATE(), INTERVAL 30 DAY) and DATE_ADD(CURDATE(), INTERVAL 30 DAY)',
),
'joins' => array(
array(
'table' => 'programs',
'alias' => 'Program',
'type' => 'LEFT',
'conditions' => array(
'Program.customer_id = Customer.customer_id'
)
),
array(
'table' => 'activities',
'alias' => 'Activity',
'type' => 'LEFT',
'conditions' => array(
'Activity.customer_id = Customer.customer_id',
)
),
),
'order' => array(
'Program.date_submitted DESC',

),
'group' => array(
'Customer.customer_id',
),
'fields' => array(
'Customer.customer_id',
"CONCAT_WS(' ', CustomerPersonalInformation.first_name, CustomerPersonalInformation.last_name) AS full_name",
'CustomerContactInformation.email',
'Program.date_submitted',
'Program.underwriters_notes',
'Activity.date',
)
)

我尝试过 MAX(Activity.date),但一点运气都没有。我有点认为它与连接有关。由于可以有许多事件与单个 customer_id 关联,我认为它只是加入它可以找到的第一个事件行。我不确定如何让它选择最近的 activity.date。

蛋糕版本是2.4.5。

谢谢,非常感谢任何帮助。

解决方案:

'Declined' => array(
'conditions' => array(
'Program.deal_status' => 'declined',
"Customer.sales_associate {CONDITION}",
"Program.date_submitted > DATE_SUB(CURDATE(), INTERVAL 60 DAY)",
'Customer.store {STORE_CONDITION}',
),
'joins' => array(
array(
'table' => 'programs',
'alias' => 'Program',
'type' => 'LEFT',
'conditions' => array(
'Program.customer_id = Customer.customer_id'
)
),
array(
'table' => 'activities',
'alias' => 'Activity',
'type' => 'LEFT',
'conditions' => array(
'Activity.customer_id = Customer.customer_id',
)
),
),
'order' => array(
'Program.date_submitted DESC',
"MAX(Activity.date) ASC"
),
'group' => array(
'Activity.customer_id HAVING most_recent NOT BETWEEN DATE_SUB(NOW(), INTERVAL 30 DAY) and DATE_ADD(NOW(), INTERVAL 30 DAY)'
),
'fields' => array(
'customer_id' => 'Customer.customer_id',
'Customer' => "CONCAT_WS(' ', CustomerPersonalInformation.first_name, CustomerPersonalInformation.last_name) AS full_name",
'Email' => 'CustomerContactInformation.email',
'Program Date' => 'Program.date_submitted',
'Underwriter notes' => 'Program.underwriters_notes',
'Last Activity Date' => 'Activity.date',
'hidden' => 'MAX(Activity.date) AS most_recent'
)
),

最佳答案

解决方案:

'Declined' => array(
'conditions' => array(
'Program.deal_status' => 'declined',
"Customer.sales_associate {CONDITION}",
"Program.date_submitted > DATE_SUB(CURDATE(), INTERVAL 60 DAY)",
'Customer.store {STORE_CONDITION}',
),
'joins' => array(
array(
'table' => 'programs',
'alias' => 'Program',
'type' => 'LEFT',
'conditions' => array(
'Program.customer_id = Customer.customer_id'
)
),
array(
'table' => 'activities',
'alias' => 'Activity',
'type' => 'LEFT',
'conditions' => array(
'Activity.customer_id = Customer.customer_id',
)
),
),
'order' => array(
'Program.date_submitted DESC',
"MAX(Activity.date) ASC"
),
// HAVE TO GROUP BY THE DATE
'group' => array(
'Activity.customer_id HAVING most_recent NOT BETWEEN DATE_SUB(NOW(), INTERVAL 30 DAY) and DATE_ADD(NOW(), INTERVAL 30 DAY)'
),
'fields' => array(
'customer_id' => 'Customer.customer_id',
'Customer' => "CONCAT_WS(' ', CustomerPersonalInformation.first_name, CustomerPersonalInformation.last_name) AS full_name",
'Email' => 'CustomerContactInformation.email',
'Program Date' => 'Program.date_submitted',
'Underwriter notes' => 'Program.underwriters_notes',
'Last Activity Date' => 'Activity.date',
'hidden' => 'MAX(Activity.date) AS most_recent'
)
),

关于php - CakePHP 查找最近的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21535567/

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