Как получить последние записи в поле «компонент» - PullRequest
0 голосов
/ 14 апреля 2019

На основе компонента необходимо получить последнюю запись, в которой каждый компонент может иметь «n» заявок, но при этом немногие из них будут клонированы для повторного расследования.

  SELECT DISTINCT T.* FROM my_table AS T

Но я не получил идеальный ответ

Таблица будет

ID  Summary                         Component   Status
1   Tyre repairing                  Car         Tested
2   Glass fitting                   Bus         Tested
3   Printer repair                  Printer     Confirm
4   CLONE - Tyre Repair             Car         Tested
5   Dashboard Clean-up              Car         Confirm
6   CLONE - CLONE - Tyre Repair     Car         Tested
7   CLONE - Glass fitting           Bus         Tested
8   Cleaning                        Computer    Tested

Ищем вывод

ID  Summary                         Component   Status
3   Printer repair                  Printer     Confirm
5   Dashboard Clean-up              Car         Confirm
6   CLONE - CLONE - Tyre Repair     Car         Tested
7   CLONE - Glass fitting           Bus         Tested
8   Cleaning                        Computer    Tested

Может кто-нибудь, пожалуйста, помогите мне за вышесказанное? Спасибо, Jana

Ответы [ 2 ]

0 голосов
/ 14 апреля 2019

вам нужно, чтобы каждый компонент появлялся в результате всего один раз? (Включая с клоном?) Если я правильно понимаю, это может помочь:

select RIGHT(Summary,len(summary)-len('CLONE -')) Summary into #t from my_table  where Summary like '%CLONE%'

select * from my_table  where Summary not in (select rtrim(ltrim(Summary)) from #t)
drop table #t

Вы также можете использовать этот вид:

create view vw_InvalidSummary
as
    select RIGHT(Summary,len(summary)-len('CLONE -')) Summary from  my_table  where Summary like '%CLONE%'
0 голосов
/ 14 апреля 2019

Предполагая, что столбец ID является столбцом идентификаторов и поэтому может использоваться для определения, какая запись является самой последней, вы можете использовать top 1 with ties и сортировать по row_number:

SELECT TOP 1 WITH TIES Id, Summary, Component, Status
FROM Table
ORDER BY ROW_NUMBER() OVER(PARTITION BY Component, Status ORDER BY Id DESC)

Это вернет одну запись для каждого компонента, где Id имеет наибольшее значение для этого конкретного компонента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...