Это характер таблицы, с которой я работаю:
IF OBJECT_ID('TEMPDB..#TEMP') IS NOT NULL
DROP TABLE #TEMP
CREATE TABLE #TEMP (
CategoryA NVARCHAR(10),
CategoryB NVARCHAR(10),
CategoryC NVARCHAR(10),
IntegerA INT,
);
INSERT INTO #TEMP(CategoryA,CategoryB,CategoryC,IntegerA)
VALUES
('A','H','G',20),
('A','H','G',-15),
('F','L','C',10),
('N','U','X',12),
('K','G','G',15),
('K','G','G',-10);
SELECT * FROM #TEMP
Обратите внимание, что верхние 2 строки и нижние 2 строки имеют одинаковые категории, однако они имеют целые числа противоположной полярности. Средние 2 строки отличаются положительными целыми числами.
Мне нужен способ выбрать все записи, которые не дублируются (например, средние 2 строки). И мне нужно выбрать записи с отрицательными целыми числами, не выбирая их положительных контрагентов.
В этом случае желаемым выводом будет:

Я пытался выяснить, могу ли я создать свою собственную таблицу, в которую вставляются только те записи, которые мне нужны, но я снова сталкиваюсь с той же проблемой, когда не могу понять, как отличить guish между записями, где все категории одинаковы.