2017-08-09 55 views
-1

我有表格货币和表格这个课程的数据。如何我可以通过最后日期 得到每种货币一个过程数据这是我的代码,我按日期得到每种货币的课程:如何根据具体查询获取上一个日期的记录

SELECT 
    `coll_currency`.`collectionAlias`, 
    `coll_currency`.`currency_abbr`, 
    `coll_currency`.`currency_image`, 
    `coll_currency`.`currency_name`, 
    `coll_currency`.`currency_amount`, 
    `coll_currency`.`id`, 
    `pars_table`.`course` AS `currency_course`, 
    `pars_table`.`publishdate` AS `currency_publishdate`, 
    `pars_table`.`currency_id` 
FROM 
    `coll_currency` 
INNER JOIN `pars_currency_nbu` AS `pars_table` 
    ON coll_currency.id = pars_table.currency_id 
WHERE 
    (
     (`currency_type` = '3670924') 
     AND (`currency_state` = '3583429') 
     AND (
      DATE_FORMAT(
       `pars_table`.`publishdate`, 
       '%Y-%m-%d' 
      ) = '2017-08-09' 
     ) 
    ) 
ORDER BY 
    `currency_publishdate` DESC 
+0

请参见:[为什么我应该提供一个用于我认为是非常简单的SQL查询的MCVE吗?](https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-似乎对我来说是一个非常简单的SQL查询) – Strawberry

+0

您可以使用数据库中的最后更新 –

回答

1

尝试是这样的:

SELECT `c`.`collectionAlias`, 
     `c`.`currency_abbr`, 
     `c`.`currency_image`, 
     `c`.`currency_name`, 
     `c`.`currency_amount`, 
     `c`.`id`, 
     `p`.`course` AS `currency_course`, 
     `p`.`publishdate` AS `currency_publishdate`, 
     `p`.`currency_id` -- this has the same value as `c`.`id` 
FROM `coll_currency` AS `c` 
JOIN `pars_currency_nbu` AS `p` ON `c`.`id` = `p`.`currency_id` 
JOIN (SELECT `cc`.`id`, MAX(`pp`.`publishdate`) AS `maxdate` 
     FROM `coll_currency` AS `cc` 
     JOIN `pars_currency_nbu` AS `pp` ON `cc`.`id` = `pp`.`currency_id` 
     GROUP BY `cc`.`id` 
    ) AS `q` ON `q`.id` = `c`.`id` AND `q`.`maxdate` = `p`.`publishdate` 
+0

谢谢男人! –

相关问题