Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Прошу помочь с запросом  [new]
Tu
Member

Откуда: г. Пятигорск
Сообщений: 74
Пренебрегаю всеми правилами и культурой поиска.
Но прошу меня простить - дело горит.
Я сам с MSSQL не работаю. Но надо сварганить один отчет до завтра, а разработчики используемого ПО зависли, и в итоге тупо пропали. А у нас комиссия. Без отчета - трындец!
Суть, разработчики накидали запрос, но через Server Managment Studio Express он выдает ошибку:
Сообщение 102, уровень 15, состояние 1, строка 14
Неправильный синтаксис около конструкции ")".

А вот сам запрос, что в нем надо подправить, чтобы он заработал?
SELECT rpLit.litId, rpLit.externalLitId, rpLit.libNumber,
       rpLit.isbn, rpLit.litName, rpLit.nameProlong, rpLit.authors,
       rpLit.publishing, rpLit.imprintDate, rpLit.edition, 
                      rpLit.copiesInLib, rpLit.volume, rpLit.modifiedOn
FROM rpLit INNER JOIN (SELECT     litId
                            FROM          rpLitRefs
                            WHERE      (litType = 3) AND (workId IN
                                                       (SELECT     workId
                                                         FROM          rpWorks
                                                         WHERE      (partId IN
                                                                                    (SELECT     partId
                                                                                      FROM          rpParts
                                                                                      WHERE      (rpdId =105)
)))))
25 май 12, 22:26    [12618451]     Ответить | Цитировать Сообщить модератору
 Re: Прошу помочь с запросом  [new]
так наверна
Guest
Tu
SELECT rpLit.litId, rpLit.externalLitId, rpLit.libNumber,
       rpLit.isbn, rpLit.litName, rpLit.nameProlong, rpLit.authors,
       rpLit.publishing, rpLit.imprintDate, rpLit.edition, 
                      rpLit.copiesInLib, rpLit.volume, rpLit.modifiedOn
FROM rpLit INNER JOIN (SELECT     litId
                            FROM          rpLitRefs
                            WHERE      (litType = 3) AND (workId IN
                                                       (SELECT     workId
                                                         FROM          rpWorks
                                                         WHERE      (partId IN
                                                                                    (SELECT     partId
                                                                                      FROM          rpParts
                                                                                      WHERE      (rpdId =105)
))))) x
on rpLit.litId=x.litId

запрос - ужасный !!
25 май 12, 22:32    [12618468]     Ответить | Цитировать Сообщить модератору
 Re: Прошу помочь с запросом  [new]
Tu
Member

Откуда: г. Пятигорск
Сообщений: 74
О, спасибо! Да, у них не только запрос ужасный, а просто все говно полнейшее. Но, к сожалению, данное ПО навязано министерством и поделать с этим ничего нельзя.
25 май 12, 22:43    [12618512]     Ответить | Цитировать Сообщить модератору
 Re: Прошу помочь с запросом  [new]
Tu
Member

Откуда: г. Пятигорск
Сообщений: 74
И... если там прет много записей с повтором litId, как мне удалить дубликаты?
25 май 12, 22:52    [12618536]     Ответить | Цитировать Сообщить модератору
 Re: Прошу помочь с запросом  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31959
Tu
И... если там прет много записей с повтором litId, как мне удалить дубликаты?
Если нужно написать плохо, лишь бы сдать отчёт, то поставьте DISTINCT в "SELECT litId FROM rpLitRefs"

Если время есть, то нужно смотреть данные, таблицы - очевидно, дублируется из за rpLitRefs.
25 май 12, 22:56    [12618544]     Ответить | Цитировать Сообщить модератору
 Re: Прошу помочь с запросом  [new]
Tu
Member

Откуда: г. Пятигорск
Сообщений: 74
Ну если кто еще не спит, выручите - как вот в таком случае удалить дубли.
Запрос для формирования представления:
SELECT     dbo.rpParts.rpdId, dbo.rpLitRefs.litId
FROM         dbo.rpLitRefs INNER JOIN
                      dbo.rpWorks ON dbo.rpLitRefs.workId = dbo.rpWorks.workId INNER JOIN
                      dbo.rpParts ON dbo.rpWorks.partId = dbo.rpParts.partId
WHERE     (dbo.rpLitRefs.litType = 3)


В итоге, идут строки где dbo.rpParts.rpdId, dbo.rpLitRefs.litId абсолютно совпадают, как от них избавиться?
26 май 12, 03:39    [12618946]     Ответить | Цитировать Сообщить модератору
 Re: Прошу помочь с запросом  [new]
Tu
Member

Откуда: г. Пятигорск
Сообщений: 74
Или вставка DISTINCT в селекте отсекает полнейшие дубли? Что-то я уже совсем затупил, спать надо. Сори. В любом случае, хочу сказать огромное спасибо форуму!
26 май 12, 04:00    [12618954]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить