子查询中有左联接的问题

问题描述 投票:0回答:1

我在查询时遇到麻烦。我不断收到以下错误。我知道这与我设置子查询的方式有关,因为如果格式化,它不会引发错误:

JOIN losses_incurred on losses_incurred.claimid = claims.id
SELECT  claims.id as 'Claim ID'
    , claims.claimNumber as 'Claim Number'
    , policies.id as 'Policy ID'
    , policies.policyNumber as 'Policy Number'
--  , revisions.id
    , loss_paid.transactionDate as 'Transaction Date'
--  , cfm.lines.name
--  , agency.name
    , (case when loss_paid.type = 'payment' then loss_paid.amount else 0 end) Payments
    , (case when loss_paid.type = 'recovery' then loss_paid.amount else 0 end) Recovery
    , losses2.adjustingPaid
FROM claims 
JOIN policies ON policies.id = claims.policyId 
JOIN claim_transactions AS loss_paid ON loss_paid.claimId = claims.id AND loss_paid.transactionDate BETWEEN "2020-01-01" AND "2020-05-31" AND loss_paid.voided = "0" 
JOIN x_claims_contacts ON x_claims_contacts.claimId = claims.id AND x_claims_contacts.producer = "1"
JOIN contacts ON contacts.id = x_claims_contacts.contactId 
JOIN losses_incurred on losses_incurred.claimId = claims.id
 LEFT JOIN
 (
        SELECT id, claimId
        FROM losses_incurred 
        GROUP BY losses_incurred.claimId
) as losses1 on losses_incurred.claimId = claims.id
 LEFT JOIN
 (
        SELECT adjustingPaid lossesIncurredId
        FROM losses_incurred_items 
        GROUP BY losses_incurred_items.lossesIncurredId
) as losses2 on losses_incurred_items.lossesIncurredId = losses_incurred.id
Error Code: 1054. Unknown column 'losses_incurred_items.lossesIncurredId' in 'on clause'
mysql sql database rdbms
1个回答
0
投票

此子查询:

(
        SELECT adjustingPaid lossesIncurredId
        FROM losses_incurred_items 
        GROUP BY losses_incurred_items.lossesIncurredId
) 

称为losses2。您需要在ON子句中使用它:

on losses2.lossesIncurredId = losses_incurred.id

我认为您在此代码中也缺少逗号:

SELECT adjustingPaid lossesIncurredId

您的代码解释为:

SELECT adjustingPaid as lossesIncurredId

但是您可能打算使用两列而不是一列:

SELECT adjustingPaid, lossesIncurredId
© www.soinside.com 2019 - 2024. All rights reserved.