簡體   English   中英

選擇最大值和對應的列

[英]Selecting Max Value and Corresponding Columns

我正在嘗試從更新列中獲取最大日期,而且還從該表中返回相應的全名,當前正在發生的事情是,返回的是最新的updates.date,但當前也返回了第一個updates.consultant,我們需要最大日期的正確全名。

SELECT customer.id, 
       customer.name, 
       customer.retainer_value, 
       customer.customer_type, 
       clientdetails.performance, 
       clientdetails.url, 
       members.fullname AS acc_manager, 
       u.maxdate, 
       u.fullname 
FROM   customer 
       LEFT JOIN clientdetails 
              ON clientdetails.id = customer.id 
       LEFT JOIN members 
              ON members.id = customer.consultant_name 
       LEFT JOIN (SELECT updates.clientid, 
                         members.fullname, 
                         Max(updates.`date`) AS MaxDate 
                  FROM   updates 
                         LEFT JOIN members 
                                ON members.id = updates.consultant 
                  GROUP  BY updates.clientid 
                  ORDER  BY updates.date DESC) u 
              ON customer.id = u.clientid 
WHERE  customer.switchedoff = 'N' 
       AND customer.companyid <> '3' 

我認為最簡單的方法是使用substring_index() / group_concat()方法:

SELECT customer.id, 
       customer.name, 
       customer.retainer_value, 
       customer.customer_type, 
       clientdetails.performance, 
       clientdetails.url, 
       members.fullname AS acc_manager, 
       u.maxdate, 
       u.fullname 
FROM   customer 
       LEFT JOIN clientdetails 
              ON clientdetails.id = customer.id 
       LEFT JOIN members 
              ON members.id = customer.consultant_name 
       LEFT JOIN (SELECT updates.clientid, 
                         substring_index(group_concat(m.fullname order by u.date desc separator '|'), '|', 1) as full_name
                         Max(updates.`date`) AS MaxDate 
                  FROM   updates u
                         LEFT JOIN members m
                                ON m.id = u.consultant 
                  GROUP  BY u.clientid
                 ) u 
              ON customer.id = u.clientid 
WHERE  customer.switchedoff = 'N' 
       AND customer.companyid <> '3' ;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM