2016-03-09 61 views
-5

截至此日期,最老的人的姓名是什麼?包括他或她的年齡,人名,電話號碼和頭銜。注意:只顯示最老的人的名字。SQL Server故障

我一直在嘗試使用SQL Server來回答這個問題,我不理解它。

這是我現在所擁有的代碼:

Use AdventureWorks2014 
Go 

SELECT 
    p.FirstName, LastName, Title 
    Employee_1, JobTitle, BirthDate 
FROM 
    Person.Person AS p 
INNER JOIN 
    HumanResources.Employee AS Employee_1 ON p.BusinessEntityID = Employee_1.BusinessEntityID 
WHERE 
    Employee_1 BirthDate * (SELECT % BirthDate AS [age] 
          FROM HumanResources.Employee)) 
+0

那麼什麼你面對的問題是? – Kason

+0

如果可以,請爲我們提供表格。另外,有些數據更好。 – Kason

+1

'Where Employee_1 BirthDate *(SELECT%BirthDate'遠不是有效的語法。你知道如何寫一個'select'語句嗎?你知道'order by'嗎?top 1'怎麼樣? – Blorgbeard

回答

2

什麼是最早的生日?

SELECT MIN(BirthDate) FROM Person.Person 

誰有這個出生日期?

SELECT p.FirstName, LastName, Title 
    Employee_1, JobTitle, BirthDate 
FROM Person.Person AS p 
WHERE P.birthdate = (SELECT MIN(BirthDate) FROM Person.Person) 

他們的年齡是多少歲?

SELECT p.FirstName, LastName, Title 
    Employee_1, JobTitle, BirthDate, 
    DATEDIFF(YEAR,BirthDate,GETDATE()) AS Age 
FROM Person.Person AS p 
WHERE P.birthdate = (SELECT MIN(BirthDate) FROM Person.Person) 
2

簡單TOP查詢應爲你工作:

SELECT top 1 p.FirstName, LastName, Title 
    Employee_1, JobTitle, BirthDate 
FROM Person.Person AS p 
INNER JOIN HumanResources.Employee AS Employee_1 
ON p.BusinessEntityID = Employee_1.BusinessEntityID 
ORDER BY BirthDate 
0

在AdventureWorks2014有有生日兩個表......於是找到的最古老的他們兩人的

SELECT TOP 1 FirstName, LastName 
FROM (
    SELECT FirstName, LastName, BirthDate 
    FROM ProspectiveBuyer 

    UNION ALL 

    SELECT FirstName, LastName, BirthDate 
    FROM DimEmployee 
) AS all_people 
ORDER BY BirthDate ASC