Select 使用 JET 且没有 PKEY 不同 - 重复行
Select Distinct using JET and no PKEY - Duplicate rows
关于这个主题的话题似乎很多,但与 Excel 相关的话题很少。
我有一个简单的 table,我想从中 select:
最好是所有列,即尽可能使用 *,这样如果用户添加新列,他们就不需要编辑 SQL。 (这是白日梦吗?)如果是这样,指定所有 returned 列的解决方案就可以了。
只有 return 行 [name]&[date](串联)不同
所有其他列我不关心哪一行是 returned。首先,最后,限制 1...任何东西。它们是所有类型的混合。
这不能创建新的 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]
关于这个主题的话题似乎很多,但与 Excel 相关的话题很少。
我有一个简单的 table,我想从中 select:
最好是所有列,即尽可能使用 *,这样如果用户添加新列,他们就不需要编辑 SQL。 (这是白日梦吗?)如果是这样,指定所有 returned 列的解决方案就可以了。
只有 return 行 [name]&[date](串联)不同
所有其他列我不关心哪一行是 returned。首先,最后,限制 1...任何东西。它们是所有类型的混合。
这不能创建新的 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]