2016-08-16 5 views
0

я запрашиваю и есть таблица со следующими данными выборкиSQL Server BY больше, чем

SELECT tb1.ID , 
     tb2.TypeID , 
     tb2.Name 
FROM tb1 
     INNER JOIN tb2 ON tb1.ID = tb2.ID 
WHERE tb1.Status = 1 
GROUP BY tb1.ID , 
     tb2.TypeID , 
     tb2.Name 

ID | TypeID | Name| 
====================== 
11 | 1  | A | 
19 | 1  | A | 
10 | 2  | A | 
5 | 1  | B | 
4 | 2  | B | 
20 | 1  | C | 
21 | 1  | C | 

Я хотел бы создать запрос, который показывает идентификатор для каждой отдельной TypeID + имя более чем 1, например,

ID | 
===== 
11 | 
19 | 
20 | 
21 | 

Может ли кто-нибудь мне немного помочь? Благодарю.

+0

но в вашем примере нет 5 или 4? aB и 2 B также необходимы по предусмотренной логике u. – Whencesoever

+0

@JanWalczak - поскольку комбинация '(TypeID, Name)' (1, A) 'произошла более одного раза, мы получаем 11 и 19. Поскольку' (1, C) 'произошло более одного раза, мы получаем 20 и 21 Никакая другая комбинация этих двух столбцов не встречалась более одного раза. –

+0

Правда, моя ошибка. Вам нужны те, которые используются не один раз. – Whencesoever

ответ

0

Попробуйте, как это,

SELECT tb1.ID 
FROM tb1 
INNER JOIN tb2 ON tb1.ID = tb2.ID 
INNER JOIN (
    SELECT tb2.TypeID 
     ,tb2.NAME 
    FROM tb1 
    INNER JOIN tb2 ON tb1.ID = tb2.ID 
    WHERE tb1.STATUS = 1 
    GROUP BY tb2.TypeID 
     ,tb2.NAME 
    HAVING COUNT(*) > 1 
    ) tb3 ON tb3.typeid = tb2.typeid 
    AND tb3.NAME = tb2.NAME 
WHERE tb1.STATUS = 1 
+0

Он работает. спасибо за ответы. очень полезно – ThaiBM

0

Вам понадобится подзапрос, который будет выбрать все записи, сгруппированные этих двух полями и имеющие 2 и более появление после этой группировки.

SELECT tb1.ID FROM tb1 INNER JOIN tb2 ON tb1.ID = tb2.ID INNER JOIN (
    SELECT tb2.TypeID ,tb2.name FROM tb1 
    INNER JOIN tb2 ON tb1.ID = tb2.ID WHERE tb1.status = 1 
    GROUP BY tb2.TypeID ,tb2.name HAVING COUNT(*) > 1 
    ) temp ON temp.typeid = tb2.typeid 
    AND temp.name = tb2.Name 
WHERE tb1.status = 1 
+1

Nó hoạt động. cảm ơn cho câu trả lời. – ThaiBM

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