SQL Server Group BY Вопрос - PullRequest
       22

SQL Server Group BY Вопрос

1 голос
/ 02 февраля 2011

У меня есть следующая таблица:

CREATE TABLE #weeks(
  ProposalLineWeekID INT, 
  StartWeek DATETIME, 
  EndWeek DATETIME, 
  Selected BIT, 
  WeekNumber INT
)

Как получить все значения ProposalLineWeekID, которые имеют повторяющиеся записи WeekNumber? Например

ProposalLineWeekID, WeekNumber 
------------------------------
2                   22
3                   6
4                   22

Я бы хотел получить ProposalLineWeekID 2 и 4 с сопровождающим номером недели.

Ответы [ 2 ]

4 голосов
/ 02 февраля 2011

Попробуйте это:

SELECT ProposalLineWeekID, WeekNumber
FROM #Weeks
WHERE WeekNumber IN
( 
    SELECT WeekNumber
    FROM #weeks
    GROUP BY WeekNumber
    HAVING COUNT(*) > 1
)

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

2 голосов
/ 02 февраля 2011

Если я правильно понимаю, думаю, это то, что вы хотите:

SELECT DISTINCT w1.ProposalLineWeekID, w1.WeekNumber
FROM weeks w1
INNER JOIN weeks w2 ON w2.WeekNumber = w1.WeekNumber 
  AND w2.ProposalLineWeekID <> w1.ProposalLineWeekID
...