2016-06-13 3 views
0

У меня есть хранимая процедура, где я использую ниже два таблицВыберите Только первый ряд от вступления результата

Ticket Nav Group(Table) - 

Column: 

Ticket Type ID 
Ticket Nav Group Id 

Ticket Sorting(Table) - 

Column : 

Ticket TypeId, 
Nav GroupId, 
Priority 

я сделал внутреннее соединение между этими таблицами. используя тип билета Id

Поскольку идентификатор типа билета и идентификатор Navgroup и приоритет разные, я нашел несколько повторяющихся строк.

Теперь мое требование: мне нужно выбрать только первую соответствующую строку из этого результата для каждого идентификатора типа билета.

Также мне нужно отобразить тип билета Id и приоритета в результате

+0

Это ОТЛИЧИЕ, о котором вы просите? –

+0

попробуйте использовать row_number, partition.google it.learn – KumarHarsh

+0

use top 1 * в select query вы получите первую строку вашего результата просто – Ajay2707

ответ

0

Если у вас есть несколько Ticket TypeId во второй таблице, вы можете присоединиться к следующим образом:

Select 
    a.[Ticket Type ID], a.[Ticket Nav Group Id], b.[Priority] 
FROM 
    [Ticket Nav Group] a 
INNER JOIN (
      SELECT [Ticket TypeId], MAX([Priority]) 
      FROM [Ticket Sorting] 
      GROUP BY [Ticket TypeId] 
     ) b 
     ON b.[Ticket TypeId] = a.[Ticket Type ID] 

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

0

Хотя вы после решения для вашего запроса, я думаю, вы должны вернуться назад и пересмотреть структуру БД.

С этой структурой:

Ticket Nav Group(Table) - 
{ 
Ticket TypeID 
Ticket NavGroup Id 
} 

Ticket Sorting(Table) - 
{ 
Ticket TypeId, 
Nav GroupId, 
Priority 
} 

Вы должны иметь только вторую таблицу. В противном случае вы дублируете данные.

Просьба дать более подробную информацию о структуре вашей базы данных. Также уточните в своем вопросе и структуре. Является ли TypeId внешним ключом из таблицы Type? Почему вы произнесли это в двух словах в первой таблице и вместе во второй таблице.

+0

У нас нет ничего похожего на внешний ключ. Имя столбца - только TicketTypeId ... Я просто записал его как два слова diff для лучшей читаемости. –

+0

Если вам нужно отобразить только идентификатор типа билета и приоритет. Давайте рассмотрим вы хотите, чтобы показать один с наивысшим приоритетом: \t выберите TypeId, макс (agreagator) \t [с, присоединяется и условия здесь] \t группа по TypeID – Cleriston

Смежные вопросы