Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MS SQL

  Все выпуски  

RFpro.ru: Базы данных MS SQL


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Гуревич Александр Львович
Статус: Профессионал
Рейтинг: 4874
∙ повысить рейтинг »
Коцюрбенко Алексей aka Жерар
Статус: Профессор
Рейтинг: 2733
∙ повысить рейтинг »
Абаянцев Юрий Леонидович aka Ayl
Статус: Профессионал
Рейтинг: 2156
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Базы данных / MSSQL, Oracle, Interbase, Firebird, FoxPro

Номер выпуска:82
Дата выхода:03.10.2011, 10:30
Администратор рассылки:Victor Pyrlik (Мастер-Эксперт)
Подписчиков / экспертов:134 / 66
Вопросов / ответов:1 / 1

Консультация # 184107: Здравствуйте уважаемые эксперты! Есть три таблицы. Нужно вывести(комиссионные * сумму заказа) сумму заработка каждого из продавцов(SALESEPEOPLE). Я написал так: SELECT 'Продавец', SNAME, ODATE, 'получил заказ на сумму $', AMT, 'из н...


Консультация # 184107:

Здравствуйте уважаемые эксперты! Есть три таблицы. Нужно вывести(комиссионные * сумму заказа) сумму заработка каждого из продавцов(SALESEPEOPLE). Я написал так:

SELECT 'Продавец', SNAME, ODATE,
'получил заказ на сумму $', AMT,
'из них заработал $', (AMT * COMM)
FROM SALESPEOPLE a, ORDERS b
WHERE (a.SNUM = b.SNUM);

Вопрос: Если переписать скрипт с использованием предложения GROUP BY, что явно намного удобнее, например так:

SELECT SNUM, SUM (AMT)
FROM ORDERS
GROUP BY SNUM;

то как возможно умножить значение AMT для каждого продавца на комиссионные и считать уже сумму всего этого?
Что типа так: SUM (AMT * COMM). Возможно реализовать все этого в одном запросе? Спасибо Вам большое

Дата отправки: 28.09.2011, 10:09
Вопрос задал: Мироненко Николай a.k.a. ememdems (Практикант)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует lupus campestris (Академик):

Здравствуйте, Мироненко Николай a.k.a. ememdems!

Один запрос другому совсем не мешает. Тем более, что умножать можно и после сложения, потому что комиссионные постоянные, то есть SUM(AMT*COMM)=COMM*SUM(AMT).

Можно сделать, например, так:
SELECT SNUM, COMM*SUM (AMT) FROM ORDERS a, SALESPEOPLE b WHERE a.SNUM=b.SNUM GROUP BY SNUM;

Удачи!

Консультировал: lupus campestris (Академик)
Дата отправки: 28.09.2011, 16:41

5
Большое Вам спасибо :)
-----
Дата оценки: 28.09.2011, 18:31

Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!



В избранное