2017-01-24 2 views
1

У меня возникли проблемы с получением отдельных записей. Вот мой запрос.Проблема с получением отдельных записей (группа)

SELECT DISTINCT TOP (100) PERCENT 
dbo.New_BookList.author, dbo.issued.issued, dbo.Ath_Crs_New.SUBJECT, dbo.New_BookList.isbn, dbo.New_BookList.title 
FROM dbo.New_BookList 
LEFT OUTER JOIN dbo.Ath_Crs_New 
ON dbo.New_BookList.catalog_Number = dbo.Ath_Crs_New.CATALOG_NUMBER 
AND dbo.New_BookList.emplid = dbo.Ath_Crs_New.EMPLID 
LEFT OUTER JOIN dbo.issued ON dbo.New_BookList.emplid = dbo.issued.emplid 
AND dbo.New_BookList.isbn = dbo.issued.itemnum 
AND dbo.New_BookList.term = dbo.issued.term 
WHERE (dbo.New_BookList.book_status <> 'cancelled') 
AND (dbo.New_BookList.emplid = 227698467) 
AND (dbo.New_BookList.term = 1172) 
ORDER BY dbo.New_BookList.isbn 

Вот результат я получаю:

+------------+--------+---------+---------------+--------------------------------+ 
| Author | Issued | Subject |  ISBN  |    Title    | 
+------------+--------+---------+---------------+--------------------------------+ 
| ALPERT  | False | REL  | 9780231165716 | RELIGION & SPORTS    | 
| TOP HAT | False | EAR  | 9780986615108 | MONOCLE CAT SEMESTER   | 
| TOP HAT | False | IST  | 9780986615108 | MONOCLE CAT SEMESTER   | 
| KING  | False | CFS  | 9781269910842 | HUMAN SEXUALITY TODAY PACKAGE | 
| PEARSON ED | False | CFS  | 9781269952460 | MYPSYCHLAB FOR KING HUMAN SEXU | 
| KING  | False | CFS  | 9781269954280 | HUMAN SEXUALITY TODAY CUSTOM F | 
| DUARTE  | False | IST  | 9781422187104 | HBR GUIDE TO PERSUASIVE PRESEN | 
| MILLER  | False | IST  | 9781541800861 | PROGRAMMING IN PYTHON 3 ACCESS | 
| ARNOLD  | False | REL  | 9781935551218 | GIFT OF SPORTS - REVISED (LOOS | 
+------------+--------+---------+---------------+--------------------------------+ 

Моя проблема с книгой Monacle CAT семестре. Поскольку номера ISBN на обоих дубликатах совпадают, я только хочу показать его один раз, если он уже указан. Поэтому мне нужно каким-то образом группировать это по ISBN независимо от предмета.

Любые идеи о том, как я буду это делать?

+0

Является ли поле Subject обязательным полем в вашем запросе? – bbrumm

+0

Да, это так. Но неважно, какой предмет показал, пока ISBN был тем же. – spacerobot

ответ

3

Вы можете группировать результаты и выбирать либо MAX, либо MIN предмет по алфавиту.

SELECT DISTINCT TOP (100) PERCENT 
    dbo.New_BookList.author 
    , dbo.issued.issued 
    , MAX(dbo.Ath_Crs_New.SUBJECT) AS [SUBJECT] 
    , dbo.New_BookList.isbn 
    , dbo.New_BookList.title 
FROM   
    dbo.New_BookList LEFT OUTER JOIN 
        dbo.Ath_Crs_New ON dbo.New_BookList.catalog_Number = dbo.Ath_Crs_New.CATALOG_NUMBER AND 
        dbo.New_BookList.emplid = dbo.Ath_Crs_New.EMPLID LEFT OUTER JOIN 
        dbo.issued ON dbo.New_BookList.emplid = dbo.issued.emplid AND dbo.New_BookList.isbn = dbo.issued.itemnum AND 
        dbo.New_BookList.term = dbo.issued.term 
WHERE  (dbo.New_BookList.book_status <> 'cancelled') AND (dbo.New_BookList.emplid = 227698467) AND (dbo.New_BookList.term = 1172) 
GROUP BY 
    dbo.New_BookList.author 
    , dbo.issued.issued 
    , dbo.New_BookList.isbn 
    , dbo.New_BookList.title 
ORDER BY dbo.New_BookList.isbn 
+0

Спасибо. Прекрасно работает! – spacerobot

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