4

一連の一時テーブルの手順の一部として、既に機能しているUNIONクエリをに変換しようとしています。アクセスにパフォーマンスの問題があるため、これを行っています。SELECT INTOVBA

INTO句を挿入してこのクエリを実行しようとすると、次のエラーが発生します。

"An action query cannot be used as a row source."

実行できない理由や、さらにクエリを作成せずに回避する方法は完全にはわかりません。何が原因で、どうすれば修正できますか?

SELECT DISTINCT A.*
FROM (SELECT DISTINCT
C.[CUSTOMER CODE], 
D.[FISCAL DAY], 
D.[TY INVOICE DATE] AS [Invoice Date], 
C.[CUSTOMER CODE]&" - "&D.[FISCAL DAY] AS CONCAT, 
IIF(D.[TY INVOICE DATE] Is Not Null, 'TY', Null) As TYLY

***INTO [FD CUST Missing- Temp]***

FROM [QR- CUST FD] AS C,
[QR- FD SALES] AS D) AS A

LEFT JOIN [QR- CUST FD] AS C
ON C.[FD CONCAT] = A.[CONCAT]
WHERE C.[FD CONCAT] Is Null

UNION ALL 

SELECT DISTINCT 
A.*

***INTO [FD Cust Missing- Temp]***

FROM (SELECT DISTINCT
C.[CUSTOMER CODE],
D.[FISCAL DAY],
D.[LY INVOICE DATE] AS [Invoice Date], 
C.[CUSTOMER CODE]&" - "&D.[FISCAL DAY] AS CONCAT, 
IIF(D.[LY INVOICE DATE] Is Not Null, 'LY', Null) As TYLY

FROM [QR- CUST FD] AS C,
[QR- FD SALES] AS D)  AS A

LEFT JOIN [QR- CUST FD] AS C
ON C.[FD CONCAT] = A.[CONCAT]
WHERE C.[FD CONCAT] IS NULL

;
4

1 に答える 1

5

エラーが発生しています

アクション クエリは行ソースとして使用できません。

SELECT ... INTO NewTableName FROM ...クエリは、結果セットを返さないアクション クエリ(INSERT、UPDATE、または DELETE クエリなど) であるためです。したがって、UNION ALLは動作しません。したがって、たとえば、これは機能しません (上記のエラー メッセージが表示されます)。

    SELECT DISTINCT LastName 
    INTO Foo 
    FROM Clients 
    WHERE LastName LIKE 'D*'
UNION ALL
    SELECT DISTINCT LastName 
    INTO Foo 
    FROM Clients 
    WHERE LastName LIKE 'T*'

ただし、そのクエリを次のように再編成することはできます。

SELECT *
INTO Foo
FROM
    (
        SELECT DISTINCT LastName 
        FROM Clients 
        WHERE LastName LIKE 'D*'
    UNION ALL
        SELECT DISTINCT LastName 
        FROM Clients 
        WHERE LastName LIKE 'T*'
    )
于 2015-06-17T09:51:55.647 に答える