【发布时间】:2013-09-27 13:33:45
【问题描述】:
我目前正在为 MS-Access 数据库编写一个导出函数,但我不太确定如何编写一个查询来提供我想要的结果。
我想做的是以下几点:
假设我有一个表Error,并且与表Cause 存在多对多关系,由表ErrorCause 建模。目前我有一个与此类似的查询(简化,原件也进一步发展了一种关系):
select Error.ID, Cause.ID
from ((Error inner join ErrorCauses on Error.ID = ErrorCauses.Error)
left join Cause on ErrorCauses.Cause = Cause.ID)
我得到这样的东西:
错误 |原因 ------------- 12345 | 12 12345 | 23 67890 | 23 67890 | 34但是我需要为每个错误选择第一个的 ID,比如 3 个原因(即使它们是空的),所以它看起来像这样:
错误 |原因1 |原因2 |原因3 -------------------------------- 12345 | 12 | 23 | 67890 | 23 | 34 |有没有办法在单个查询中做到这一点? 喜欢选择前 3 名,然后将其展平到结果行中? 在此先感谢您的任何指点。
【问题讨论】:
-
看看 SQL Server Pivot 命令。
-
@asantaballa 这不是 sql server
-
啊,对不起。看到 MS 和 SQL,我的脑子就掉线了。请忽略。
-
之后你对查询做了什么?