2017-08-09 54 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

謝謝男人! –

相關問題