【发布时间】:2016-09-20 22:20:15
【问题描述】:
我有这个问题:
SELECT
c.ID, c.Firstname, c.lastname, c.BDaY, c.gender,
cp.code, cp.Citizenship, r.race, e.ethnicity
FROM
Client AS C (nolock)
JOIN
Citizenship AS cp (nolock) ON c.ID = cp.client_ID
JOIN
Race AS r (nolock) ON c.ID = R.Client_ID
JOIN
Ethnicity AS E (nolock) ON E.Client_ID = c.ID
此查询将返回一些重复的客户姓名,因为他们有不同的种族和民族。
例子:
ID |FirstName|Lastname| BDay | gender | code |citizenship| race | ethnicity
1 Pedram Salamati 01-20-1998 M 1 US citizen Middle-east Spanish
1 Pedram Salamati 01-20-1998 M 1 US Citizen Middle-east unknown
1 Pedram Salamati 01-20-1998 M 1 US Citizen Middle-east Brazilian
2 Jesse Albert 03-05-1982 F 1 US Citizen African not Spanish
2 Jesse Albert 03-05-1982 F 1 US Citizen American not Spanish
我想知道是否有任何方法可以说如果种族不是 = 种族应该是多种族,如果种族不是 = 彼此相同的 ID,请选择最后更新的那个。
PS.Ethnicity 有时间戳,我可以使用Max(e.LastUpdate)
我认为子查询可能会有所帮助!
任何帮助或想法将不胜感激!
【问题讨论】:
-
您的 Select 语句在表之间没有关系。请使用该信息更新您的帖子。
-
Yuuuupppsssss!对于那个很抱歉!谢谢!
-
拥有
ID列有什么意义? -
要知道哪个ID属于谁以及发生什么类型的更新!
-
这里有一个相关的问题:stackoverflow.com/q/39236684/5089204
标签: sql sql-server subquery subquery-factoring