Объединить результаты нескольких похожих запросов из одной таблицы, но с разными условиями - PullRequest
0 голосов
/ 06 июня 2018

Я совершенно новичок в SQL.

Мне нужно получить результаты этого запроса:

Select
Date,
SUM(SumPrice) as Price1,
SUM(SumAmount) as Amount1,
SUM(SumPrice)/SUM(SumAmount) as AVGprice1

FROM [BiSandbox].[dbo].[database]
where Condition = '1'  
group by Date

Чтобы выровнять результаты этого запроса:

Select
Date,
SUM(SumPrice) as Price2,
SUM(SumAmount) as Amount2,
SUM(SumPrice)/SUM(SumAmount) as AVGprice2

FROM [BiSandbox].[dbo].[database]
where Condition = '2'  
group by Date

Они должны выстроиться в очередь, видя, как они сгруппированы по общему столбцу Дата.Я не смог найти или найти решение, потому что это довольно узкий вопрос.Каков правильный синтаксис для объединения этих двух таблиц результатов?Могу ли я присоединиться к трем?

1 Ответ

0 голосов
/ 06 июня 2018

При необходимости вы можете объединить таблицу в себя следующим образом:

SELET
d1.Date,
SUM(d1.SumPrice) as Price1,
SUM(d1.SumAmount) as Amount1,
SUM(d1.SumPrice)/SUM(d1.SumAmount) as AVGprice1
SUM(d2.SumPrice) as Price2,
SUM(d2.SumAmount) as Amount2,
SUM(d2.SumPrice)/SUM(d2.SumAmount) as AVGprice2
FROM [BiSandbox].[dbo].[database] d1
    -- or the primary key column you have instead of id
    INNER JOIN [BiSandbox].[dbo].[database] d2 on d1.id = d2.id
WHERE d1.Condition = '1'
AND d2.Condition = '2' -- this can be an OR if needed
GROUP BY d1.Date

Если этот ответ не удовлетворителен, пожалуйста, предоставьте более подробную информацию.

...