早上好!
我有一个 MS Access 拆分数据库(尚未使用 ms sql server),它通过临时查询(想象中称为“temp”!)加入几个表
SELECT table_CORE.[core-ID],
table_CORE.[PO],
table_CORE.[Part],
table_CORE.[Part Rev],
table_CORE.[Supplier Doc #],
table_CORE.[Sup Doc Rev],
table_DATES.[date-ID],
table_DATES.[iteration],
table_REJECTIONS.[rejection-ID],
table_REJECTIONS.[iteration],
table_REJECTIONS.[reason],
table_REJECTIONS.[details],
table_REJECTIONS.[timestamp]
FROM
(
(
table_CORE INNER JOIN [TEMP]
ON table_CORE.[core-ID] = TEMP.[date-ID]
)
INNER JOIN [table_DATES]
ON TEMP.[date-ID] = table_DATES.[date-ID]
AND TEMP.[iteration]=table_DATES.[iteration]
)
INNER JOIN table_REJECTIONS
ON TEMP.[date-ID] = table_REJECTIONS.[rejection-ID]
AND TEMP.[iteration]=table_REJECTIONS.[iteration]
WHERE table_CORE.[core-ID] Like '*'
所以最终,这会显示一个文档拒绝列表 - 这很好,除了每个文档适用于多个部分。
您可以绑定 PO、Part 和 Part Rev 以将这些拒绝合并到一个文档中 - 问题是我通常会使用 GROUP BY 子句来执行此操作...
...除了“详细信息”字段是备忘录数据类型,当您尝试使用 GROUP BY 子句时,访问会将其截断为 256 个字符。
任何想法如何解决这个问题?在将 group 子句加入拒绝表之前,我已经尝试过 group 子句,但我最终遇到了同样的问题(因为同一 PO、Part Number 和 Revision 绑定在一起的多个拒绝) - 我正在调查其他方法,但我就是无法理解它所需的 SQL!
非常感谢!
如果您需要更多详细信息,请给我留言!
- -额外细节 - -
例子:
ID PO Part Rev reason details
1 111 A1 A error some_details1
2 111 A1 A error some_details1
3 111 A1 A error some_details1
4 222 A1 A error some_details1
6 222 A1 A error some_details1
7 333 B1 A error some_details1
8 333 B1 A error some_details1
9 444 B1 A error some_details1
10 555 C1 A error some_details1
需要改为:
PO Part Rev reason details
111 A1 A error some_details1
222 A1 A error some_details1
333 B1 A error some_details1
444 B1 A error some_details1
555 C1 A error some_details1
注意 join 函数是如何工作的:
当前项目存储在 CORE 中,并通过core-ID>>date-ID以一对多关系绑定到日期,然后使用迭代来获取部件历史中的最新事件。
然后使用core-ID>>rejeciton-ID和date-iteration>>rejectioniteration将最近的事件加入到拒绝列表中,以返回当前活动的拒绝。