我有两张桌子表1&表2和它们之间的关系是:一个--->许多。
表1 - > CaseNumber是PK | CreatedDate | ModifiedDate
表2 - > Id是PK | CaseNumber是FK |年龄
表2列出了同一CaseNumber的许多记录。我想查询以下内容:
表2中的每个CaseNumber都会找到最小年龄。例如找出表2中所有记录的最小年龄。
不适用于特定的CaseNumber 。当我删除where子句时......发生了奇怪的事情。我不能为每个案件编号采取最低限度。我收到的是同一个案例编号的行。似乎min(年龄)不起作用。
我有一些困难,因为这种关系是一对多的。我该怎么处理?
样本记录如下:
表1 CaseNumber CreatedDate ModifiedDate
1 12/12/2012 25/12/2012
2 14/12/2012 15/12/2012
3 16/12/2012 16/12/2012
4 17/12/2012 17/12/2012
5 17/12/2012 25/12/2012
表2 Id CaseNumber年龄
1 2 23
2 2 34
3 2 19
4 3 25
5 4 26
6 4 50
我想只返回3行:
案例编号2,年龄19岁
第3号病例,年龄25岁
案例编号4,年龄26岁
答案 0 :(得分:0)
SELECT CaseNumber, CreatedDate, ModifiedDate,
MIN(b.Age) Age
FROM Table1 a
INNER JOIN Table2 b
ON a.CaseNumber = b.CaseNumber
WHERE a.CaseNumber = 7
GROUP BY CaseNumber, CreatedDate, ModifiedDate
答案 1 :(得分:0)
SELECT B.Id ,B.CaseNumber,MIN(B.Age),A.CreateDate , A.ModifiedDate FROM TABLE1 A INNER JOIN TABLE2 B ON A.CaseNumber = B.CaseNumber WHERE B.CaseNumber = 7 GROUP BY B.Id,B.CaseNumber,A.CreateDate,A.ModifiedDate
答案 2 :(得分:0)
SELECT B.Id ,B.CaseNumber,MIN(B.Age),A.CreateDate , A.ModifiedDate FROM TABLE1 A INNER JOIN TABLE2 B ON A.CaseNumber = B.CaseNumber WHERE B.CaseNumber IN (SELECT CaseNumber from Table2) GROUP BY B.Id,B.CaseNumber,A.CreateDate,A.ModifiedDate
你试试这个。