0

我有两个表表 1 和表 2,它们之间的关系是:一个 ---> 很多。

表 1 --> CaseNumber 是 PK | 创建日期 | 修改日期

表 2 --> Id 是 PK | CaseNumber 是 FK | 年龄

表 2 有许多相同 CaseNumber 的记录。我想查询以下内容:

为表 2 中的每个 CaseNumber 找到最小 Age。例如,找出表 2 中所有记录的最小年龄。

不适用于特定 CaseNumber。当我删除 where 子句时,奇怪的事情发生了。我不能为每个案例编号取最小值。我收到多行相同的案例编号。似乎 min(age) 不起作用。

我有一些困难,因为这种关系是一对多的。我该如何处理?

样本记录如下:

表 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 岁

4

3 回答 3

0
选择 B.Id ,B.CaseNumber,MIN(B.Age),A.CreateDate ,
        A.修改日期
从表 1 A
        A.CaseNumber = B.CaseNumber 上的 INNER JOIN TABLE2 B
WHERE B.CaseNumber IN(从表 2 中选择 CaseNumber)
按 B.Id、B.CaseNumber、A.CreateDate、A.ModifiedDate 分组

你试试这个。

于 2013-05-28T08:03:22.363 回答
0
选择 B.Id ,B.CaseNumber,MIN(B.Age),A.CreateDate ,
        A.修改日期
从表 1 A
        A.CaseNumber = B.CaseNumber 上的 INNER JOIN TABLE2 B
其中 B.CaseNumber = 7
按 B.Id、B.CaseNumber、A.CreateDate、A.ModifiedDate 分组

于 2013-05-28T07:13:35.330 回答
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
于 2013-05-28T06:22:13.697 回答