代码之家  ›  专栏  ›  技术社区  ›  masfenix

SQL查询,需要不同的行

  •  5
  • masfenix  · 技术社区  · 16 年前

    下表的结构如下:

    row structure

    所以基本上你可以看到,这个部门每两年都会改名一次。以16号为例。我想要一个select查询,它只在日期最长的时候获取名称。我该怎么做?

    4 回复  |  直到 5 年前
        1
  •  5
  •   Ken Bloom    16 年前
    select ID, Name from departments o 
    where o.thedate=
      (select max(i.thedate) from departments i where o.id=i.id)
    
        2
  •  1
  •   Conrad Frix    16 年前
    SELECT ID, 
    First(Name) AS FirstOfName, First(DateChange) AS FirstOfDateChange
    FROM departments
    GROUP BY ID
    ORDER BY First(DateChange) DESC;
    
        3
  •  0
  •   BC.    16 年前

    这个表的主键是什么?这将对子查询同一个表进行名称比较。

    SELECT
        id,
        name,
        date
    FROM table
    WHERE name = (SELECT TOP 1 name
                  FROM table AS subtable
                  WHERE subtable.name = table.name
                  ORDER BY date DESC)
    
        4
  •  0
  •   Speed Nick    16 年前

    选择d* 来自d部门 内部连接(选择主键 来自各部门 在m.pk=d.pk上的日期=MAX(日期))m

    推荐文章