I'm trying (being the operative word) to build a passthrough query and am having some problems. When I try running the following SQL it returns "Incorrect Syntax near '!'". Can anyone see what's wrong?
SELECT dbo.vSyndicate.CalYearID AS CalYr, Right([ReturnCalQuarterID],1) AS Qtr,
dbo.vReturnHeader.SyndicateNumber,
case YOA
when [ReportingCalYearID] -2 then Null
else [ReportingCalYearID]
end,
dbo.vReturnBaseElementMappingUIDescription.FormLabel,
dbo.vReturnExpenseType.ReturnExpenseTypeID,
Cast([ExpenseTypeNID] as int) AS Id,
[expensetypenid] + " - " + [expensetypedesc] AS Expense,
Cast((case value when IsNull([valueint],1) then [valuedecimal] else [valueint] end) as int)
FROM ((((((dbo.vReturn LEFT JOIN dbo.vReturnBaseElementMapping ON dbo.vReturn.ReturnBaseElementMappingID = dbo.vReturnBaseElementMapping.ReturnBaseElementMappingID)
LEFT JOIN dbo.vReturnHeader ON dbo.vReturn.fReturnHeaderID = dbo.vReturnHeader.fReturnHeaderID)
LEFT JOIN dbo.vReturnPeriod ON dbo.vReturnHeader.ReturnPeriodID = dbo.vReturnPeriod.ReturnPeriodID)
LEFT JOIN dbo.vSyndicate ON dbo.vReturnHeader.SyndicateSCDYearID = dbo.vSyndicate.SyndicateSCDYearID)
LEFT JOIN dbo.vReturnCurrency ON dbo.vReturn.ReturnCurrencyID = dbo.vReturnCurrency.ReturnCurrencyID)
LEFT JOIN dbo.vReturnBaseElementMappingUIDescription ON dbo.vReturnBaseElementMapping.ReturnBaseElementMappingID = dbo.vReturnBaseElementMappingUIDescription.ReturnBaseElementMappingID)
LEFT JOIN dbo.vReturnExpenseType ON dbo.vReturn.ReturnExpenseTypeID = dbo.vReturnExpenseType.ReturnExpenseTypeID
WHERE (((Cast([dbo.vReturnBaseElementMappingUIDescription]![ReturnTypeID]) as int)=3)
AND ((Cast([dbo.vReturnHeader]![ReturnStatusID]) as int)=6)
AND ((Trim(Left([formlabel],3)))=130))
ORDER BY dbo.vSyndicate.CalYearID, Right([ReturnCalQuarterID],1),
dbo.vReturnHeader.SyndicateNumber,
(where [ReportingCalYearID]=-2 then Null else [ReportingCalYearID]),
Cast([ExpenseTypeNID] as int);
dbo.vReturnHeader.SyndicateNumber,
case YOA
when [ReportingCalYearID] -2 then Null
else [ReportingCalYearID]
end,
dbo.vReturnBaseElementMappingUIDescription.FormLabel,
dbo.vReturnExpenseType.ReturnExpenseTypeID,
Cast([ExpenseTypeNID] as int) AS Id,
[expensetypenid] + " - " + [expensetypedesc] AS Expense,
Cast((case value when IsNull([valueint],1) then [valuedecimal] else [valueint] end) as int)
FROM ((((((dbo.vReturn LEFT JOIN dbo.vReturnBaseElementMapping ON dbo.vReturn.ReturnBaseElementMappingID = dbo.vReturnBaseElementMapping.ReturnBaseElementMappingID)
LEFT JOIN dbo.vReturnHeader ON dbo.vReturn.fReturnHeaderID = dbo.vReturnHeader.fReturnHeaderID)
LEFT JOIN dbo.vReturnPeriod ON dbo.vReturnHeader.ReturnPeriodID = dbo.vReturnPeriod.ReturnPeriodID)
LEFT JOIN dbo.vSyndicate ON dbo.vReturnHeader.SyndicateSCDYearID = dbo.vSyndicate.SyndicateSCDYearID)
LEFT JOIN dbo.vReturnCurrency ON dbo.vReturn.ReturnCurrencyID = dbo.vReturnCurrency.ReturnCurrencyID)
LEFT JOIN dbo.vReturnBaseElementMappingUIDescription ON dbo.vReturnBaseElementMapping.ReturnBaseElementMappingID = dbo.vReturnBaseElementMappingUIDescription.ReturnBaseElementMappingID)
LEFT JOIN dbo.vReturnExpenseType ON dbo.vReturn.ReturnExpenseTypeID = dbo.vReturnExpenseType.ReturnExpenseTypeID
WHERE (((Cast([dbo.vReturnBaseElementMappingUIDescription]![ReturnTypeID]) as int)=3)
AND ((Cast([dbo.vReturnHeader]![ReturnStatusID]) as int)=6)
AND ((Trim(Left([formlabel],3)))=130))
ORDER BY dbo.vSyndicate.CalYearID, Right([ReturnCalQuarterID],1),
dbo.vReturnHeader.SyndicateNumber,
(where [ReportingCalYearID]=-2 then Null else [ReportingCalYearID]),
Cast([ExpenseTypeNID] as int);