Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Группировка данных с CASE в SELECT / 5 сообщений из 5, страница 1 из 1
18.05.2001, 14:59
    #32005876
Alexandr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировка данных с CASE в SELECT
Запрос следующего вида:

SELECT SurName, (CASE WHEN P.TypeID=1 THEN SUM(Summa/1.20)
ELSE SUM(Summa)
END) FROM Managers M
INNER JOIN Reklama R
ON R.PersonID=M.PersonID
INNER JOIN Payments P
ON P.PaymentID=R.PaymentID
GROUP BY SurName

требует, чтобы в группировке участвовали и P.TypeID, чего мне совершенно не надо - суть запроса, как очевидно, в том, чтобы вернулась ведомость с выплатами по-фамильно, а не по-фамильно и по типу оплаты... Может, кто подскажет, как обойти данный прикол?
...
Рейтинг: 0 / 0
18.05.2001, 15:13
    #32005877
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировка данных с CASE в SELECT
SELECT SurName, SUM(CASE WHEN P.TypeID=1 THEN Summa/1.20 ELSE Summa END) AS summa
FROM Managers M
INNER JOIN Reklama R
ON R.PersonID=M.PersonID
INNER JOIN Payments P
ON P.PaymentID=R.PaymentID
GROUP BY SurName
...
Рейтинг: 0 / 0
18.05.2001, 15:31
    #32005878
Alexandr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировка данных с CASE в SELECT
Glory

А если вместо цифры будет стоять опять же выражение?

SELECT SurName, SUM(CASE WHEN P.TypeID=(SELECT TypeID FROM Types
WHERE TypeName LIKE'безнал%')
THEN Summa/1.20
ELSE Summa END) AS summa
FROM Managers M
INNER JOIN Reklama R
ON R.PersonID=M.PersonID
INNER JOIN Payments P
ON P.PaymentID=R.PaymentID
GROUP BY SurName
...
Рейтинг: 0 / 0
18.05.2001, 17:05
    #32005881
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировка данных с CASE в SELECT
SELECT SurName, SUM(Summa) AS summa
FROM
(SELECT SurName,
CASE WHEN EXISTS (SELECT TypeID FROM Types WHERE Types.TypeID = P.TypeID AND TypeName LIKE'безнал%') THEN Summa/1.20 ELSE Summa END AS Summa
FROM Managers M
INNER JOIN Reklama R ON R.PersonID=M.PersonID
INNER JOIN Payments P ON P.PaymentID=R.PaymentID
) AS tmp1
GROUP BY SurName
...
Рейтинг: 0 / 0
18.05.2001, 17:37
    #32005883
Alexandr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировка данных с CASE в SELECT
2Glory

Ну вы млин даете :%|

и не знал, что так можно... Пасиб!
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Группировка данных с CASE в SELECT / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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