我一直用了好几天这个追加查询,并将其随机引发此异常:查询太复杂?使用追加查询
查询是太复杂
查询插入到一个不同的表从数据库中检索回数据联合查询。
INSERT INTO [CA-SSI Dispatch]
SELECT
SSIQuery.[Phonenumber] AS Phonenumber,
SSIQuery.[FormRecordNumber] AS FormRecordNumber,
SSIQuery.[InspectedBY] AS InspectedBY,
SSIQuery.[Project] AS Project,
SSIQuery.[DateTimeInspection] AS DateTimeInspection,
SSIQuery.[Question] AS Question,
SSIQuery.[Answer] AS Answer,
SSIQuery.[Rank] AS Rank,
SSIQuery.[Comment] AS Comment,
SSIQuery.[Regulation] AS Regulation
FROM SSIQuery
WHERE NOT EXISTS
(SELECT * FROM [CA-SSI Dispatch] WHERE SSIQuery.[Phonenumber] = [CA-SSI Dispatch].[Phonenumber]
AND SSIQuery.[FormRecordNumber] =[CA-SSI Dispatch].[FormRecordNumber]
AND SSIQuery.[Project] = [CA-SSI Dispatch].[Project]
AND SSIQuery.[DateTimeInspection] = [CA-SSI Dispatch].[DateTimeInspection]
AND SSIQuery.[Question] = [CA-SSI Dispatch].[Question]
AND SSIQuery.[Answer] = [CA-SSI Dispatch].[Answer]
AND SSIQuery.[FormRecordNumber] = [CA-SSI Dispatch].[FormRecordNumber]);
的INSERT INTO停止工作,并保持返回该错误后,我增加了更多的领域,以我的联合查询。如果这有助于这是我的联合查询的一部分。此联合查询,继续工作。
SELECT
SSIAns.phonenumber AS Phonenumber,
SSIAns.Form_Record_Number As FormRecordNumber,
SSIAns.Inspected_By AS InspectedBY,
SSIAns.Project,
SSIAns.Date_Time_of_Inspection AS DateTimeInspection,
QR.q1 AS Question,
SSIAns.Clean_level_ground AS Answer,
SSIRank.Rank_1 AS Rank,
SSIComment.Comment_1 AS Comment,
QR.r1 AS Regulation
FROM SSIAns, SSIRank,SSIComment, QR
WHERE
SSIRank.Rank_1 = "2_Address_Within_3_Days" AND
SSIAns.Form_Record_Number=SSIRank.Form_Record_Number
AND SSIRank.Form_Record_Number =SSIComment.Form_Record_Number
UNION
SELECT
SSIAns.phonenumber AS Phonenumber,
SSIAns.Form_Record_Number As FormRecordNumber,
SSIAns.Inspected_By AS InspectedBY,
SSIAns.Project,
SSIAns.Date_Time_of_Inspection AS DateTimeInspection,
QR.q2 AS Question,
SSIAns.Adequate_ramps_barricading AS Answer,
SSIRank.Rank_2 AS Rank,
SSIComment.Comment_2 AS Comment,
QR.r1 AS Regulation
FROM SSIAns, SSIRank,SSIComment, QR
WHERE
SSIRank.Rank_2 = "2_Address_Within_3_Days" AND
SSIAns.Form_Record_Number=SSIRank.Form_Record_Number
AND SSIRank.Form_Record_Number =SSIComment.Form_Record_Number
联合查询一遍又一遍地显示下一个相应的字段。例如:rank_3,rank_4等,直到我说
两个查询正在努力罚款直到50
UNION
SELECT
SSIAns.phonenumber AS Phonenumber,
SSIAns.Form_Record_Number As FormRecordNumber,
SSIAns.Inspected_By AS InspectedBY,
SSIAns.Project,
SSIAns.Date_Time_of_Inspection AS DateTimeInspection,
QR.q2 AS Question,
SSIAns.Adequate_ramps_barricading AS Answer,
SSIRank.Rank_50 AS Rank,
SSIComment.Comment_50 AS Comment,
QR.r1 AS Regulation
FROM SSIAns, SSIRank,SSIComment, QR
WHERE
SSIRank.Rank_50 = "2_Address_Within_3_Days" AND
SSIAns.Form_Record_Number=SSIRank.Form_Record_Number
AND SSIRank.Form_Record_Number =SSIComment.Form_Record_Number
现在,只有联合查询工作,当我尝试INTO查询运行INSERT,插入到一个辅助表,我运行错误“查询太复杂” 随着联合查询,我们试图将问题分解到相应的答案,排名&评论,成一个记录。所以问题1 &对应的字段是一条记录。问题2 &对应的字段是不同的记录。
如果你做了50次基本相同的查询,你显然会遇到模式问题。 – Bohemian
我绝对知道你是对的。我们有点卡住了,因为我们正在使用第三方程序,在访问表中为所有97个问题写入一条记录,每个问题与排名,评论和答案相关。现在,我们必须将每个单独的问题及其相关字段分解成一条记录,并且除了使用这个查询外,我不太清楚要如何分解它写入的这些记录。 – Macellaria
如果您无法更改表格并且表格设计被破坏,您是否可以通过触发或计划作业对数据进行一次性规范化,以将数据复制到容易使用的模式中?这个任务会相对简单,保存你的理智,并允许你创建其他报告 – Bohemian