0

失敗し始めた MS Access Query を修正しようとしています。数年前に別の誰かが作ったシステムなので、逆算して理解しようとしています。失敗している部分は、他の 2 つのサブクエリを結合するクエリです。

クエリ結合で「SELECT *」を実行すると、問題なくデータが返されます。ただし、特定のフィールドを定義しようとすると、「クエリが複雑すぎます」という役に立たないメッセージが表示されて失敗します。

したがって、これは問題なくデータを返します。

SELECT * FROM 530a_WIPIncomeShareByResource 
INNER JOIN 510_AllInvoicesCreditsInvWIP 
ON [530a_WIPIncomeShareByResource].WIPDocApplicable 
     = [510_AllInvoicesCreditsInvWIP].No_
WITH OWNERACCESS OPTION;

ただし、結合で 2 つのクエリのいずれかからフィールドを定義すると、エラーが発生し、「クエリが複雑すぎます」というエラーが表示されます。したがって、これは失敗します。たとえば、次のようになります。

SELECT [510_AllInvoicesCreditsInvWIP].Status 
FROM 530a_WIPIncomeShareByResource 
INNER JOIN 510_AllInvoicesCreditsInvWIP 
ON [530a_WIPIncomeShareByResource].WIPDocApplicable 
     = [510_AllInvoicesCreditsInvWIP].No_ 
WITH OWNERACCESS OPTION;

結合で参照されている 2 つのサブクエリ (530a_WIPIncomeShareByResource と 510_AllInvoicesCreditsInvWIP) をそれぞれ確認しましたが、これらは両方とも正常に実行され、データが返されます。ただし、2つに参加することはできません。

私は Access の経験がまったくないので、何かアドバイスをいただければ幸いです。


こんにちは、これはサブクエリのコードです:

530a_WIPIncomeShareByResource:

SELECT [502_WIP_DocApplicable].No_ AS [Resource No_], 
[502_WIP_DocApplicable].[Posting Date], 
[502_WIP_DocApplicable].WIPDocApplicable, 
[502_WIP_DocApplicable].WIPOpen, 
Sum(IIf([Work Type code]<>"WRITEOFF" 
        And [Type]<>3 
        And [Work Type code]<>"DISBURSE" 
        And [Work Type code]<>"DIRRESP" 
        And [Work Type code]<>"TAXJ"
        And [Work Type code]<>"INVMON" 
        And [Work Type code]<>"CUST"
        And [NAVTCIWORKTYPE-FEETYPE.Disbursement]<>1,[WIPValue],0)) AS QualWIP, 
Sum(IIf([Work Type code]="WRITEOFF",[WIPValue],0)) AS NonQualWOWIP, 
Sum(IIf([Work Type code]="DISBURSE" 
        Or [Work Type code]="XTNLPERCEN"
        Or [Type]=3 
        Or [NAVTCIWORKTYPE-FEETYPE.Disbursement]=1,[WIPValue],0)) AS DISBURSE, 
Sum(IIf([Work Type code]="DIRRESP" 
        Or [Work Type code]="TAXJ" 
        Or [Work Type code]="INVMON"
        Or [Work Type code]="CUST",[WIPValue],0)) AS FIXEDFEE,
Sum([502_WIP_DocApplicable].WIPValue) AS TotalWIP
FROM [NAVTCIWORKTYPE-FEETYPE] 
INNER JOIN 502_WIP_DocApplicable 
ON [NAVTCIWORKTYPE-FEETYPE].Code = [502_WIP_DocApplicable].[Work Type Code]
GROUP BY [502_WIP_DocApplicable].No_, 
         [502_WIP_DocApplicable].[Posting Date],
         [502_WIP_DocApplicable].WIPDocApplicable, 
         [502_WIP_DocApplicable].WIPOpen
WITH OWNERACCESS OPTION;

そして2番目:

510_AllInvoicesCreditsInvWIP

SELECT [510_AllInvoicesCredits].[Job No_], 
[510_AllInvoicesCredits].No_, 
[510_AllInvoicesCredits].[Invoice Date1] AS [Invoice Date],  
[510_AllInvoicesCredits].Status, 
[510_AllInvoicesCredits].[Invoice No_], 
[510_AllInvoicesCredits].REVERSED, 
[510_AllInvoicesCredits].[Reversal Document No_], 
[510_AllInvoicesCredits].[Reversal Document Date], 
[510_AllInvoicesCredits].Reference, 
IIf([DocType]="Credit",[TotalBill],([TotalBill]-[FTRaised]+(-
    (IIf(IsNull([FTWO]),0,
     IIf([TotalBill]<=-0.01,-[FTWO],[FTWO]))))-
    (IIf([TotalBill]<0,-[DISBURSE],[DISBURSE]))-
    (IIf([TotalBill]<0,-[FIXEDFEE],[FIXEDFEE]))-
    (IIf([TotalBill]<0,-[XTNLPERCENSHARE],[XTNLPERCENSHARE]))-
    (IIf([TotalBill]<0,-[FIXEDFEESHARE],[FIXEDFEESHARE])))) AS IncomeToAlloc, 
[510_AllInvoicesCredits].TotalBill, 
[510_AllInvoicesCredits].XTNLPERCENSHARE, 
[510_AllInvoicesCredits].FIXEDFEESHARE, 
[520a_WIPAnalysis1_WIP].QualWIP, 
[520a_WIPAnalysis1_WIP].NonQualWOWIP, 
[520a_WIPAnalysis1_WIP].DISBURSE, 
[520a_WIPAnalysis1_WIP].TotalWIP, 
[510_AllInvoicesCredits].FTRaised AS FTR, 
IIf(IsNull([FTWO]),0,IIf([TotalBill]<0,-[FTWO],[FTWO])) AS FTWO1, 
[520a_WIPAnalysis1_WIP].GenCFWIPUsed, 
[510_AllInvoicesCredits].GenCF AS GenCFRaised, 
[510_AllInvoicesCredits].WOPROVRaised AS WOPROVR, 
[520b_WIPAnalysis2_FT].WOPROVWO AS WOPROVUsed, 
[520a_WIPAnalysis1_WIP].FIXEDFEE, 
[510_AllInvoicesCredits].DocType, 
[510_AllInvoicesCredits].Doc
FROM (510_AllInvoicesCredits LEFT JOIN 520a_WIPAnalysis1_WIP 
ON [510_AllInvoicesCredits].No_ = [520a_WIPAnalysis1_WIP].WIPDocApplicable) 
LEFT JOIN 520b_WIPAnalysis2_FT 
ON [510_AllInvoicesCredits].No_ = [520b_WIPAnalysis2_FT].FTDocApplicable
WHERE ((([510_AllInvoicesCredits].REVERSED)<>1))
ORDER BY [510_AllInvoicesCredits].[Invoice Date1]
WITH OWNERACCESS OPTION;

このアクセス システム全体は、クエリのレイヤーごとにレイヤーになっています。解読するのは本当に頭痛の種です!ただし、上記は問題なく動作します。

4

0 に答える 0