Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Группировка полей с одинаковыми значениями, сумма в полях с одинаковыми значениями 
:(
    Опции темы
tikitiki
Дата 11.8.2005, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 10.5.2005

Репутация: нет
Всего: нет



Проблема не очень большая. У меня простые две связанные таблицы. SQL-запрос приведённый далее делает выборку из обеих таблиц. Запрос почти правильно всё делает, но
в Summa1 не совсем то видимо, что надо-получаются не все правильные
значения. Мне вообще надо в Summa1 получить значение, вычисленное для одной строки, далее нужно получить две общих суммы по всем выбранным записям-реальный доход и максимальный возможный доход, затем получить разность этих сумм-недополученный доход. Последнее
и есть цель, но я таким вот путём пошёл и хотел бы закончить, хотя альтернатива тоже может пригодиться. Кроме всего жуткая проблема с тем, чтоб при нахождении максимального возможного дохода, т.е. суммирования записи с одинаковыми значениями поля Numnmb учитывались для суммирования один раз. Здесь две проблемы вылезли, но
вопрос всё же кажется один, что с этим SQL запросом делать-он меня и устраивает и раздражает одновременно. Остальные вычисления я делал в коде и вычисляемых полях, причём много раз изменял, но так и не могу
результат получить правильный. Конечный результат выдаётся, похоже на правду, но там числа всё-таки с ошибками при чём в некоторых записях
крупные ошибки.
Для ясности -архив с программой без exe-файла ниже. Архив rar внутри rar-двойной так сказать...

Код

 SELECT  Numnmb,
Numcost*(c.Datetwo-c.Dateone)
as Summa1
FROM client c,number n
WHERE
(c.Dateone>="01.01.2004 12:00:00" AND c.Datetwo<="01.01.2006 12:00:00")
and c.Numnmb=n.Numnmb
UNION
SELECT  Numnmb,
Numcost*("01.01.2006 12:00:00"-c.Dateone)
as Summa1
FROM client c,number n
WHERE
(c.Dateone<="01.01.2006 12:00:00" AND c.Datetwo>"01.01.2006 12:00:00")
and c.Numnmb=n.Numnmb
UNION
SELECT  Numnmb,
Numcost*(c.Datetwo-"01.01.2004 12:00:00")
as Summa1
FROM client c,number n
WHERE
(c.Dateone<"01.01.2004 12:00:00" AND c.Datetwo>="01.01.2004 12:00:00")
and c.Numnmb=n.Numnmb



Присоединённый файл ( Кол-во скачиваний: 0 )
Присоединённый файл  rarrar.rar 47,30 Kb


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Другие СУБД | Следующая тема »


 




[ Время генерации скрипта: 0.0400 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.