У меня есть таблица, которая выглядит следующим образом (на сервере microsoft sql):

   [ID]
  ,[DamageCodeGroupID]
  ,[Name]
  ,[Swedish]
  ,[Finnish]
  ,[CreatedDate]
  ,[CreatedBy]
  ,[UpdatedDate]
  ,[UpdatedBy]
   [dbo].[DamageCode]

В этой таблице много строк, и некоторые из них имеют одинаковое значение. Например, ID 98 имеет шведское значение «Motor», как и ID 286. Как я могу сопоставить это с каким-то запросом sql, чтобы увидеть, какие строки имеют дубликаты? (На основе столбца Шведский)

Чтобы уточнить, например, при выполнении:

SELECT * FROM DamageCode WHERE Swedish = 'motor'

Результат:

ID  DamageCodeGroupID   Name    Swedish Finnish
98         17           ENG01   Motor   Moottori
286        41                   Motor   Motor

Итак, результат, который мне нужен, - это своего рода скрипт, в котором я могу сопоставить эти старые DamageCodes с новыми. У меня старые коды повреждений от ID 1 до 138. От ID 139 до 339 у меня есть новые коды. Я хочу увидеть, как они связаны, например, если идентификатор 77 имеет то же имя, что и идентификатор 133, или что-то подобное.

0
ajdi871 5 Июл 2021 в 16:02

3 ответа

Лучший ответ

Я пытаюсь переместить изображение под текст. Я попробовал (position: absolute) и переместил изображение с помощью -px, но я хочу, чтобы изображение оставалось на том же месте в HTML, но перемещалось с использованием только CSS. Я использую подход, ориентированный на мобильные устройства, и из-за дизайна рабочего стола IMG должен оставаться на том же месте в HTML. Я также попытался переместить текст, но он просто проходит по изображению или отступу и просто не работает. Это может быть проще объяснить скриншотами:

select
   [ID]
  ,[DamageCodeGroupID]
  ,[Name]
  ,[Swedish]
  ,[Finnish]
  ,[CreatedDate]
  ,[CreatedBy]
  ,[UpdatedDate]
  ,[UpdatedBy]
from
(
select *, 
    -- If ID is unique 
    min(ID) over(partition by [Swedish]) as minID,
    max(ID) over(partition by [Swedish]) as maxID
    --count(*) over(partition by [Swedish]) as cnt
from [dbo].[DamageCode]
) as dc
where minID <> maxID -- cnt >= 2
order by [Swedish], [ID];
3
lptr 5 Июл 2021 в 13:39

Если вы хотите найти все строки, которые имеют одинаковое значение для определенного столбца, например на шведском языке , вы можете сделать что-то вроде следующего

select * from (
    select Swedish, Count(*) dupes
    from DamageCode 
    group by Swedish 
    having Count(*)>1
)d
join DamageCode dc on dc.Swedish = d.Swedish 
order by dc.Id
2
Stu 5 Июл 2021 в 13:43
      WITH CTE AS
      (
        SELECT 1 AS ID,'MOTOR'AS VALUE
          UNION ALL
        SELECT 2 AS ID,'ENGINE'AS VALUE
          UNION ALL
        SELECT 3 AS ID,'MOTOR'AS VALUE
     )
    SELECT STRING_AGG(C.ID,',') AS XX ,C.VALUE  
    FROM CTE AS C
    GROUP BY C.VALUE

Поскольку вы не предоставили образцы данных и желаемый результат,

1
Sergey 5 Июл 2021 в 13:10