powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с формированием запроса!
2 сообщений из 2, страница 1 из 1
Помогите с формированием запроса!
    #32026625
Aleksandr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запрос таков:
--@n - это входная инт переменная для хранимой процедуры.
SELECT SurName+' '+S.Name, SUM(Summ), SUM(Moduls.PagePart),
(SELECT COUNT(NumberID) FROM ReklamaInMagazinsList RIM WHERE RIM.ReklamaID=R.ReclamID)
FROM reklama R
LEFT JOIN staff S
ON S.PersonID=R.PersonID
LEFT JOIN PaymentsList Pl
ON Pl.ReklamaID=R.ReclamID
LEFT JOIN Payments P
ON P.PaymentID=Pl.PaymentID
LEFT JOIN ReklamaInMagazinsList Rl
ON Rl.ReklamaID=R.ReclamID
LEFT JOIN Moduls
ON Moduls.ModulID=R.ModuleID
WHERE R.RecTypeID IN (1,2)
AND R.RubricID IN (SELECT RubrikaID FROM Rubriks
WHERE Oblogka!=1 AND Vkladka!=1)
AND Rl.NumberID=@n
GROUP BY SurName,S.Name

Суть запроса в том, чтобы получить такой набор данных:
ФИ Общая сум. Площадь Сумма за номер
Иванов Иван 40000.00 1.25 4000.00
Петров Петр 50000.00 1.45 5000.00

Но вот третья строка запроса вызывает проблемы. Без нее запрос формирует сумму всех счетов на все заказы данного пользователя, но каждый заказ, помимо нескольких счетов, содержит еще и несколько номеров, на которые он идет... И вот вычислить сумму за один (несколько) определенный номер не получается, хотя вроде бы и просто достигается делением каунта... Ругается он на R.ReclamID, что она не аггрегатная, но если я ее введу в Group By, то и юзверы у меня не будут групповаться...
...
Рейтинг: 0 / 0
Помогите с формированием запроса!
    #32027020
Antonoff@Pilot.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SELECT SurName+' '+S.Name, SUM(Summ), SUM(Moduls.PagePart), MAX(CNID) --Можно любую ф-ю
FROM reklama R
left join (SELECT ReklamaID RID, COUNT(NumberID) CNID FROM ReklamaInMagazinsList) RIM
on
R.ReclamID=RIM.RID
LEFT JOIN staff S
ON S.PersonID=R.PersonID
LEFT JOIN PaymentsList Pl
ON Pl.ReklamaID=R.ReclamID
LEFT JOIN Payments P
ON P.PaymentID=Pl.PaymentID
LEFT JOIN ReklamaInMagazinsList Rl
ON Rl.ReklamaID=R.ReclamID
LEFT JOIN Moduls
ON Moduls.ModulID=R.ModuleID
WHERE R.RecTypeID IN (1,2)
AND R.RubricID IN (SELECT RubrikaID FROM Rubriks
WHERE Oblogka!=1 AND Vkladka!=1)
AND Rl.NumberID=@n
GROUP BY SurName,S.Name

/*Кстати, а зачем так мучиться с подзапросом? Почему не присоединить ReklamaInMagazinsList обычным Join-ом и не поставить ей агрегат COUNT() в селекте? */
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с формированием запроса!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]