Просто хотел проверить, был ли более простой способ или лучший способ написать нижеприведенный запрос? Я должен объединить около 10 таблиц MMA_AUDITSUM_STG
ниже, я сделал только два. Есть ли у вас возможность набирать все имена столбцов один за другим и включать в себя соединение с MMA_SITE_MST
? Я использую SQL Server для хранения данных.Запрос базы данных на SQL Server с UNION ALL
SELECT
a.CLIENT_NAME AS [BRAND], a.SITE_NO AS [SITE NO],
a.SITE_NAME AS [SITE],
c.FILTER_1 AS [AREA], c.FILTER_2 AS [REGION],
a.MANAGER,
a.AUDIT_DATE AS [db.audit_date], a.THIS_AUDIT_SCORE AS [SCORE],
a.ALERTS_FLAG AS [ALERTS], a.REPEAT_FLAG AS [REPEAT ISSUES],
a.ACTION_PLAN_FLAG AS [ACTION PLAN FAILURE],
a.Cash, a.Revenue, a.Stock,
a.[Unaccounted Stock], a.[People & Payroll],
a.[Safe], a.[Security], a.[Petty Cash], a.[Tills],
a.[Bankings], a.[Sales], a.[Vouchers & Discounting],
a.[PDQ], a.[Administration],
a.[Stock Verification], a.[Stock Management], a.[Ordering]
FROM
MMA_AUDITSUM_STG_34 As a
INNER JOIN
MMA_SITE_MST AS c ON a.CLIENT_ID = c.CLIENT_ID
AND a.SITE_ID= c.SITE_ID
AND a.SITE_NAME= c.SITE_NAME
UNION ALL
SELECT
b.CLIENT_NAME, b.SITE_NO, b.SITE_NAME,
c.FILTER_1, c.FILTER_2,
b.MANAGER, b.AUDIT_DATE, b.THIS_AUDIT_SCORE,
b.ALERTS_FLAG, b.REPEAT_FLAG, b.ACTION_PLAN_FLAG,
b.Cash, b.Revenue, b.Stock, b.[Unaccounted Stock],
b.[People & Payroll], b.[Safe], b.[Security],
b.[Petty Cash], b.[Tills], b.[Bankings], b.[Sales],
b.[Vouchers & Discounting], b.[PDQ], b.[Administration],
b.[Stock Verification], b.[Stock Management], b.[Ordering]
FROM
MMA_AUDITSUM_STG_35 As b
INNER JOIN
MMA_SITE_MST As c ON b.CLIENT_ID = b.CLIENT_ID
AND b.SITE_ID = c.SITE_ID
AND b.SITE_NAME = c.SITE_NAME
Любые мнения приветствуются, как я все еще учусь так что не уверен, если я делаю выше правильно, даже если он получает меня результат мне нужно :)
Спасибо заранее
Джон
Ваш запрос замечательный. Я могу опросить модель данных, которая ставит аналогичные данные в разные таблицы, а не в одну таблицу. –
Вы можете упростить свой вопрос, присоединившись к 'MMA_SITE_MST' к результату' union all' всех таблиц 'MMA_AUDITSUM_STG_ %', но я согласен с Gordon - реальный вопрос в том, зачем использовать разные таблицы для подобных данных? –
Спасибо за ответы, модель данных связана с клиентом, имеющим несколько брендов, однако моя модель данных не имеет брендов так, чтобы настроить их как разных клиентов. Это позволяет мне создавать информационные панели, которые объединяют все или могут фильтроваться по брендам. Я согласен, и оставшуюся часть моих клиентов мне не нужно присоединяться. Спасибо, что подтвердили, что я делаю это правильно :) – Hoube78