Как правильно объединиться, используя левые соединения - PullRequest
0 голосов
/ 25 марта 2019

У меня есть несколько союзов, которые я должен выполнить, чтобы получить значение, которое распадается со временем.Итак, у меня есть следующие поля: CustomerName, CustomerID, 2017Q1, 2017Q3, 2017Q4.Каждый квартал находится в отдельной таблице, поэтому я создал представление, которое объединяет их всех: имя клиента, идентификатор клиента, квартал (оценка REUP) и YQ «20XXQX».Мне трудно сгруппировать все вместе, так как он показывает мне несколько строк для одного и того же идентификатора.

Я попытался выполнить объединение ВСЕ и выполнить левое соединение, и совсем недавно я создал главное представление, чтобы все таблицы были в одном представлении, и теперь я пытаюсь повернуть данные, чтобы получить по 1 строке для каждогоCustomerName, CustomerID, «2017Q1», «2017Q3», «2017Q4», т. Д.

SELECT
`2017Q1`.`customerInputName` AS `CustomerInputName`,
`2017Q1`.`customerInputCustid` AS `customerInputCustid`,
`2017Q1`.`REUP` AS `Quarter`,
'2017Q1' AS `YQ` 
FROM
`ACC1_2017Q1` `2017Q1` UNION ALL
SELECT
`2017Q3`.`customerInputName` AS `CustomerInputName`,
`2017Q3`.`customerInputCustid` AS `customerInputCustid`,
`2017Q3`.`REUP` AS `Quarter`,
'2017Q3' AS `YQ` 
FROM
`ACC1_2017Q3` `2017Q3` UNION ALL
SELECT
`2017Q4`.`customerInputName` AS `CustomerInputName`,
`2017Q4`.`customerInputCustid` AS `customerInputCustid`,
`2017Q4`.`REUP` AS `Quarter`,
'2017Q4' AS `YQ` 
FROM
`ACC1_2017Q4` `2017Q4`
group by 
    `CustomerInputName`,
    `customerInputCustid`,

РЕЗУЛЬТАТЫ:

customerInputName    CustomerInputCustID    2017Q1   2017Q3   2017Q4
AMANDA               113345038               657     NULL     NULL
AMANDA               113345038               NULL    NULL     684

Желаемые результаты:

customerInputName    CustomerInputCustID    2017Q1   2017Q3   2017Q4
AMANDA               113345038               657     NULL     684

1 Ответ

0 голосов
/ 25 марта 2019

Вы можете использовать свой запрос следующим образом:

select 
  t.customerInputName, t.CustomerInputCustID, 
  max(t.2017Q1) 2017Q1, max(t.2017Q3) 2017Q3, max(t.2017Q4) 2017Q4
from (
  <your query here>
) t
group by t.customerInputName, t.CustomerInputCustID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...