1

我有表格,我在这些表格上使用“内部联接”。我想获得唯一的数据,但有些值是重复的。这是我的结果表。但由于日期不同,我无法获得唯一的名称。我使用了不同的分组方式,但没有机会。

    HSB.Name    HMB.Date
    --------    -------------------
    Michael     15.04.2013 07:55:08
    Madonna     15.04.2013 10:58:17
    Madonna     15.04.2013 11:05:46
    Terry       15.04.2013 11:13:39
    Britney     15.04.2013 11:52:00
    Slash       15.04.2013 11:55:39
    Slash       15.04.2013 11:56:10

我的 sql 是 ->

     select HSB.Name, HMB.Date 
     from HSB hsb        
     inner join HMB hmb
     on hsb.hsb_no = hmb.hmb_no
     And hsb.hsb_g_no = hmb.hmb_g_no
     where hsb.hsb_kod = '&kod'
     and hsb.hsb_date >= '&date1'
     and hsb.hsb_date < '&date2'
4

3 回答 3

1

请试试:

select Name,
    Date
FROM(
    select 
        HSB.Name, 
        HMB.Date,
        row_number() over (partition by HSB.Name order by HMB.Date) RNum
     from HSB hsb inner join HMB hmb on hsb.hsb_no = hmb.hmb_no
        And hsb.hsb_g_no = hmb.hmb_g_no
     where 
        hsb.hsb_kod = '&kod' and 
        hsb.hsb_date >= '&date1' and 
        hsb.hsb_date < '&date2'
)x WHERE RNum=1
于 2013-04-18T12:48:15.457 回答
1

如果您想获取最近与一个名称相关联的日期,请尝试以下查询。

 select HSB.Name, max(HMB.Date) as Date
 from HSB hsb        
 inner join HMB hmb
 on hsb.hsb_no = hmb.hmb_no
 And hsb.hsb_g_no = hmb.hmb_g_no
 where hsb.hsb_kod = '&kod'
 and hsb.hsb_date >= '&date1'
 and hsb.hsb_date < '&date2'
 group by HSB.Name;
于 2013-04-18T12:58:23.623 回答
0

select HSB.Name, max(HMB.Date) from HSB hsb
inner join HMB hmb on hsb.hsb_no = hmb.hmb_no and hsb.hsb_g_no = hmb.hmb_g_no where hsb.hsb_kod = '&kod' and hsb.hsb_date >= '&date1 ' 和 hsb.hsb_date < '&date2' 按名称分组

于 2013-04-18T16:46:21.637 回答