2016-03-09 62 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