-3

Вот мой SQL.Число столбцов в двух выбранных таблицах или запросах не соответствует

ВЫБОР [Ledger Записи JC]. [Код объекта], DLookup ("Описание", "ACTVTY и CMDTY Описания", "L4 = '& [Object Code] & "'") AS [Объект Код Описание], Слева ([Записи Ledger JC]! [Дочернее предприятие], 2) AS L4, DLookUp («Описание», «Описание ACTVTY и CMDTY», «L4 =» «& [L4] &« ») AS [L4 Описание], Влево ([Записи Ledger JC]! [Дочернее предприятие], 3) AS L5, DLookUp («Описание», «Описание ACTVTY и CMDTY», «L4 =» «& [L5] &« ' ") AS [L5 Описание], Влево ([Записи Ledger JC]! [Вспомогательное устройство], 4) AS L6, DLookUp («Описание», «Описание ACTVTY и CMDTY», «L4 =» «& [L6] &« ») AS [L6 Описание ], Право ([Записи Ledger JC]! [Вспомогательное устройство], 4) AS L7, DLookUp («Описание», «Описание ACTVTY и CMDTY», «L4 =» «& [L7] &« ») AS [ L7 Описание] [Ledger Записи JC] .Amount, DLookUp ("Бюджет", "Бюджет По деятельности По Commodity", "WBS = '& [WBS] & "'") AS бюджета, [L6] & "" & [Код объекта] & "." & [L7] AS WBS, [Ledger Записи JC] .Date ИЗ [Ledger Записи JC] UNION Transform Sum ([Бюджет По Деятельности По Commodity] .Budget) Как [Всего из бюджета] ВЫБРАТЬ [ Бюджет по видам деятельности По товарам] .L4, [Бюджет по видам деятельности по товарам]. [L4 Описание], [Бюджет по видам деятельности по товару]. Бюджет AS [Общий бюджет], [Бюджет по видам деятельности по товарам] .L5, [Бюджет по видам деятельности по товарам]. [L5 Описание], [Бюджет по видам деятельности по товарам] .L6, [Бюджет по видам деятельности по товарам]. [L6 Описание], [Бюджет по видам деятельности по товару] .L7, [Бюджет по видам деятельности по товарам] .WBS AS WBS, [Бюджет по видам деятельности по товарам]. [Описание WBS], [Записи Ledger JC Qry] .WBS AS [WBS 2], Sum ([Ledger Записи JC QRY] .Amount) Как сумма ОТ [Ledger Записи JC QRY] RIGHT JOIN [Бюджет По деятельности По Commodity] ON [Ledger Записи JC QRY] .WBS = [Бюджет По Деятельность по ТН] .WBS Группа BY [Бюджет По деятельности По Товарной] .L4, [Бюджет По деятельности По Товарной]. [L4 Описание], [ Бюджет По деятельности По Товарной] .Budget, [Бюджет По деятельности По товару] .L5, [Бюджет по видам деятельности по товарам]. [L5 Описание], [Бюджет по видам деятельности по товарам] .L6, [Бюджет по видам деятельности по товарам]. [L6 Описание], [Бюджет по видам деятельности по товарам] .L7, [Бюджет По деятельности По Commodity] .WBS, [Бюджет По деятельности По Commodity]. [WBS Описание] [Ledger Записи JC QRY] .WBS Pivot [Бюджет активность по ТН].[Код объекта] В (57523, 57531, 57532, 57533, 57535, 57537, 57540, 57590, 57626, 57627, 57628, 57629, 57630, 58230)

+0

Необходимо отформатировать код, чтобы его было легче читать. – xkcd149

ответ

0

У вас есть запрос UNION, все выборки в таких типах запросов должны имеют одинаковое количество полей с одним и тем же типом данных. Здесь у вас 14 полей в первом запросе и 12 столбцов в секунду, это порождает ошибку. Также вам нужно будет проверить тип данных для каждого столбца, они должны соответствовать в обоих запросах. Вот ваш форматированный запрос, пожалуйста, отредактируйте в вопросе, я не могу.

SELECT 
    [Ledger Entries JC].[Object Code], 
    DLookUp("Description", "ACTVTY and CMDTY Descriptions", "L4='" & [Object Code] & "'") AS [Object Code Description], 
    Left([Ledger Entries JC]![Subsidiary], 2) AS L4, 
    DLookUp("Description", "ACTVTY and CMDTY Descriptions", "L4='" & [L4] & "'") AS [L4 Description], 
    Left([Ledger Entries JC]![Subsidiary], 3) AS L5, 
    DLookUp("Description", "ACTVTY and CMDTY Descriptions", "L4='" & [L5] & "'") AS [L5 Description], 
    Left([Ledger Entries JC]![Subsidiary], 4) AS L6, 
    DLookUp("Description", "ACTVTY and CMDTY Descriptions", "L4='" & [L6] & "'") AS [L6 Description], 
    Right([Ledger Entries JC]![Subsidiary], 4) AS L7, 
    DLookUp("Description", "ACTVTY and CMDTY Descriptions", "L4='" & [L7] & "'") AS [L7 Description], 
    [Ledger Entries JC].Amount, 
    DLookUp("Budget", "Budget By Activity By Commodity", "WBS='" & [WBS] & "'") AS Budget, 
    [L6] & "." & [Object Code] & "." & [L7] AS WBS, 
    [Ledger Entries JC].Date 
FROM 
    [Ledger Entries JC] 
UNION 
    Transform 
    Sum([Budget By Activity By Commodity].Budget) As [Total Of Budget] 
SELECT 
    [Budget By Activity By Commodity].L4, 
    [Budget By Activity By Commodity].[L4 Description], 
    [Budget By Activity By Commodity].Budget AS [Total Budget], 
    [Budget By Activity By Commodity].L5, 
    [Budget By Activity By Commodity].[L5 Description], 
    [Budget By Activity By Commodity].L6, 
    [Budget By Activity By Commodity].[L6 Description], 
    [Budget By Activity By Commodity].L7, 
    [Budget By Activity By Commodity].WBS AS WBS, 
    [Budget By Activity By Commodity].[WBS Description], 
    [Ledger Entries JC Qry].WBS AS [WBS 2], 
    Sum([Ledger Entries JC Qry].Amount) As Amount 
FROM 
    [Ledger Entries JC Qry] 
     RIGHT JOIN [Budget By Activity By Commodity] 
     ON [Ledger Entries JC Qry].WBS = [Budget By Activity By Commodity].WBS 
Group BY 
    [Budget By Activity By Commodity].L4, 
    [Budget By Activity By Commodity].[L4 Description], 
    [Budget By Activity By Commodity].Budget, 
    [Budget By Activity By Commodity].L5, 
    [Budget By Activity By Commodity].[L5 Description], 
    [Budget By Activity By Commodity].L6, 
    [Budget By Activity By Commodity].[L6 Description], 
    [Budget By Activity By Commodity].L7, 
    [Budget By Activity By Commodity].WBS, 
    [Budget By Activity By Commodity].[WBS Description], 
    [Ledger Entries JC Qry].WBS 
PIVOT 
    [Budget By Activity By Commodity].[Object Code] In(57523, 57531, 57532, 57533, 57535, 57537, 57540, 57590, 57626, 57627, 57628, 57629, 57630, 58230) 
+0

Сергей, Его не попрошайничать, только кому-то нужна помощь, если кто-то захочет. И спасибо за его организацию, но все же существуют пролемы. –

+0

Я ничего не менял в запросе. Попытайтесь добавить два пустых столбца ко второму запросу, например ', null как empty1, null как empty2', тогда у вас будет одинаковое количество столбцов в обоих запросах. –

Смежные вопросы