Моя таблица данных выглядит следующим образом (Таблица1)
Table1
------------------------------------------
ID | IPaddress | Port | Value
----|---------------|-------|-------------
1 | xx.yy.14.15 | 332 | This is good
------------------------------------------
2 | xx.yy.14.15 | 332 | I can work
------------------------------------------
3 | xx.yy.12.12 | 400 | Looks ok
------------------------------------------
4 | xx.yy.12.12 | 400 | can I work
------------------------------------------
5 | xx.yy.12.12 | 400 | Yes, please
-------------------------------------------
6 | xx.yy.14.16 | 401 | How is this
-------------------------------------------
7 | xx.yy.14.16 | 401 | Looks ok
-------------------------------------------
8 | xx.yy.14.16 | 401 | can I work
-------------------------------------------
9 | xx.yy.14.16 | 401 | Yes, please
-------------------------------------------
Таблица желаемых результатов:
ID | IPaddress | Port | Value
----|---------------|-------|-----------------------------------------------------------
1 | xx.yy.14.15 | 332 | This is good and I can work
--------------------------------------------------------------------------------------
2 | xx.yy.12.12 | 400 | Looks ok and can I work and Yes, please
---------------------------------------------------------------------------------------
3 | xx.yy.14.16 | 401 | How is this and Looks ok and can I work and Yes, please
---------------------------------------------------------------------------------------
Вот что я попробовал:
DECLARE @VAR1 VARCHAR(50)
DECLARE @VAR2 VARCHAR(50)
SELECT @VAR1 = T1.VALUE,@VAR2=T2.VALUE
FROM TABLE1 AS T1 INNER JOIN TABLE1 AS T2 ON T1.ID =T2.ID
WHERE T1.IPADDRESS =T2.IPADDRESS
SELECT IPADDRSS,PORT,@VAR1 + ' AND ' +@VAR2 FROM
SELECT T1.*,
ROW_NUMBER() OVER (PARTITION BY T1.IPADDRESS,T1.PORT ORDER BY VALUE) AS NM
FROM TABLE1 AS T1
)TBL
WHERE NM = 1
Однако из вышеприведенного запроса я могу получить желаемый результат, если есть только 2 повторяющихся строки
(ПРИМЕЧАНИЕ: здесь я рассматриваю IPADDRESS и PORT как дубликаты, в то время как другие столбцы не дублируются)
Однако, как я могу достичь желаемого результата, когда одинаковые IPADDRESS и PORT находятся в 3, 4 или 5 строках? Обратите внимание, что число строк, имеющих одинаковые IPADDRESS и PORT, является динамическим и иногда может превышать 10.
Итак, как я могу справиться с такой динамичной ситуацией, получая желаемый результат?
Надеюсь, я все правильно объяснил. Пожалуйста помоги. Спасибо