2015-01-28 2 views
0

Я разработчик WPF, а не sql dba ... Попытка сделать соединение в подборе. У меня есть две таблицы: tbArticles & tbRegions. TbArticles содержит столбец RegionCode, который также является общим для tbRegions. Я пытаюсь получить количество всех статей по регионам и странам:T SQL: Внутреннее соединение в подвыборном запросе?

enter image description here

enter image description here

Это результат я ищу:

enter image description here

I удалось получить страны по регионам от внутреннего соединения:

select distinct r.longName, a.Country 
from ises.tbarticles a 
INNER JOIN ref.tbRegions r 
On a.RegionCode = r.regionCode 
order by longName 

Но как мне получить результат, который я хочу с присоединением в качестве подбора? Я пробовал такие вещи, но, очевидно, это неправильно.

select (select distinct r.longName from ises.tbarticles a 
INNER JOIN ref.tbRegions r 
on r.regionCode = a.RegionCode) as 'Region', country, COUNT(*) as 'Total Articles' from ises.tbarticles a, ref.tbRegions r 
group by country 
order by Region 

ответ

1

Попробуйте это:

select r.longName, a.Country, count(*) 
from ises.tbarticles a 
INNER JOIN ref.tbRegions r 
On a.RegionCode = r.regionCode 
group by r.longName, a.Country 
order by longName 
1

использования необходимо использовать GROUP BY Clause, а затем граф

Select r.longName, a.Country, Count(a.*) as ArticleCount 
From ises.tbarticles a 
    INNER JOIN ref.tbRegions r On a.RegionCode = r.regionCode 
Group By r.longName, a.Country 
1

Попробуйте это:

DECLARE @TbArticles TABLE(regionCode INT, Coutry NVARCHAR(MAX), Body NVARCHAR(MAX)) 
DECLARE @TbRegions TABLE(regionCode INT, Name NVARCHAR(MAX)) 

INSERT INTO @TbArticles VALUES 
(10, N'Australia', 'blah'), 
(10, N'Fiji', 'blah'), 
(12, N'USA', 'blah'), 
(15, N'Belgium', 'blah') 


INSERT INTO @TbRegions VALUES 
(10, N'Australia'), 
(12, N'North America'), 
(15, N'Western Europe') 



SELECT r.Name, a.Coutry, COUNT(*) AS ArticleCount FROM @TbArticles a 
JOIN @TbRegions r ON r.regionCode = a.regionCode 
GROUP BY r.regionCode, r.Name, a.Coutry 

Выход:

Name   Coutry  ArticleCount 
Australia  Australia 1 
Australia  Fiji  1 
North America USA   1 
Western Europe Belgium  1 
Смежные вопросы