簡體   English   中英

多列按條件查詢最新數據並拼接

[英]Query the Latest Data Based On Condition in Multiple Columns and Concat Them

我有一個這樣的數據庫

雇員

我嘗試根據最新的 s_from_date 和 t_from_date 查詢每個員工的最新工作和薪水,並將其連接到一列“當前員工”

我嘗試用 max(s_from_date) 和 max(t_from_date) 過濾它,但它沒有用

SELECT CONCAT (first_name,' ',last_name,' ',salary,' ',title) As "Current Employees" 
FROM employees WHERE s_from_date = (SELECT MAX(s_from_date) FROM employees) AND t_from_date = (SELECT MAX(t_from_date) FROM employees);

如果你使用phpmyadmin,它可以告訴錯誤position在哪里,請看下面的圖片。

在此處輸入圖像描述

我想你在“concat”之后錯過了“(”。

SELECT CONCAT(first_name,' ',last_name,' ',salary,' ',title) As Current Employees
FROM employees WHERE s_from_date = (SELECT MAX(from_date) FROM employees) AND t_from_date = (SELECT MAX(from_date) FROM employees)

你可以試試

SELECT CONCAT(first_name,' ',last_name,' ',salary,' ',title) As "Current Employees" 
FROM employees e1
WHERE s_from_date = (SELECT MAX(s_from_date) FROM employees e2
                    WHERE e2.first_name = e1.first_name AND e2.last_name = e1.last_name) 
     AND t_from_date = (SELECT MAX(t_from_date) FROM employees e3
                    WHERE e3.first_name = e1.first_name AND e3.last_name = e1.last_name);

如果您的employees表有id / employee_id列,而不是在 2 個子查詢的條件下使用last_namefirst_name ,您可以將其更改為e2.id = e1.ide3.id = e1.id

暫無
暫無

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

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