У меня есть небольшая головоломка для себя. PK - это комбинация lineNr и typeNr Я хочу сделать выбор, где все is_adres равно N и одинаковы для всех linenrs, то же самое касается is_postaddres. И я хочу получить результат в одном представлении.sql puzzle sql server 2000
это Ват я хочу, как конечный результат
typenr,is_Adres ,is_postaddres
10, null , 'N'
11, 'N', null
13, 'N', 'N'
Сценарий создания таблицы + TestData
CREATE TABLE lineAdres
(
lineNr int,
typeNr int,
is_Adres char(1),
is_postaddres char(1)
);
INSERT INTO lineAdres VALUES
(1, 10,'J','N'),
(1, 11,'N','J'),
(1, 12,'N','J'),
(1, 13,'N','N'),
(2, 10,'J','N'),
(2, 11,'N','J'),
(2, 12,'J','N'),
(2, 13,'N','N');
Я хочу присоединиться к этому 2 мнения в один .. но как, и я получил чувство это может быть более эффективным!
select typenr, is_adres
from lineAdres
where is_adres = 'N'
group by typenr, is_adres
having count(*) = 2
select typenr, is_postaddres
from lineAdres
where is_postaddres = 'N'
group by typenr, is_postaddres
having count(*) = 2
увы это не так просто, is_adres и is_postaddres две разные столбцы, я хочу, чтобы вывести три колонки, а не два – lordkain
понят. Я думаю, что лучше всего это сделать с помощью CTE. Я отредактировал ответ, чтобы показать, как это сделать. – ScholarYoshi
Нет CTE в SQL Server 2000 ... используйте производную таблицу или какую-либо другую структуру. –