Select 使用 JET 且没有 PKEY 不同 - 重复行

Select Distinct using JET and no PKEY - Duplicate rows

关于这个主题的话题似乎很多,但与 Excel 相关的话题很少。

我有一个简单的 table,我想从中 select:

  1. 最好是所有列,即尽可能使用 *,这样如果用户添加新列,他们就不需要编辑 SQL。 (这是白日梦吗?)如果是这样,指定所有 returned 列的解决方案就可以了。

  2. 只有 return 行 [name]&[date](串联)不同

  3. 所有其他列我不关心哪一行是 returned。首先,最后,限制 1...任何东西。它们是所有类型的混合。

  4. 这不能创建新的 table 或删除行,只是 selecting 和加入

    name    date        sales
    andy    01/01/2010  100
    andy    01/01/2010  900
    andy    05/01/2010  100
    alex    02/02/2010  200
    alex    02/02/2010  200
    alex    05/01/2010  200
    dave    09/09/2010  300
    dave    09/09/2010  300
    dave    01/09/2010  300
    

此外,代码简单性优于速度。这将留给 运行 过夜,看起来很漂亮,但速度慢也没关系......而且 excel 没有数百万行!

非常感谢大家。

更新

我希望 table 看起来像这样:

name    date        sales
andy    01/01/2010  100
andy    05/01/2010  100
alex    02/02/2010  200
alex    05/01/2010  200
dave    09/09/2010  300
dave    01/09/2010  300

            or
andy    01/01/2010  900
andy    05/01/2010  100
alex    02/....

我可以select所有'独特的东西:

SELECT MAX(joined)
    FROM
        (SELECT [Single$].[date] AS [date],
          [Single$].[name] AS [name],
           name & date AS [joined]
        FROM [Single$]
        )
GROUP  BY joined
HAVING MAX(joined) IS NOT NULL

但我不知道如何以某种方式将其连接回原始 table 以保留连接匹配的任何一行。而且我不知道加入是否是正确的方法?谢谢

只是 运行 按 [Name][Date] 分组的聚合查询。对于所有其他列 运行,像 MAX()MIN() 这样的聚合应该适用于数字和字符串值。

SELECT  [Single$].[name] AS [name], [Single$].[date] AS [date],
        MAX([Single$].[sales]) As [sales],
        MAX(...)       
FROM [Single$]
GROUP BY [Single$].[name] AS [name], [Single$].[date] AS [date]