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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не могу....додумать..помогите 
V
    Опции темы
TaNK
Дата 15.1.2008, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



вот запрос...
Код

 select       
       p.dog_num as "Номер_договора",
       Сумма_лимитов  = sum   (case MONTH('2007-11-01')
                          When 1  Then lim_y.value1
                          When 2  Then lim_y.value2
                          When 3  Then lim_y.value3
                          When 4  Then lim_y.value4
                          When 5  Then lim_y.value5
                          When 6  Then lim_y.value6
                          When 7  Then lim_y.value7
                          When 8  Then lim_y.value7
                          When 9  Then lim_y.value9
                          When 10 Then lim_y.value10
                          When 11 Then lim_y.value11
                          When 12 Then lim_y.value12 end),
       Тарифы_для_лимитов  = max   (f_live.tarif)

From Payer p Inner Join Limit lim                ON p.pay_id = lim.pay_id
             Inner Join Limit_year lim_y         ON lim_y.limit_id = lim.limit_id
             Inner join fixinglive_part f_live   ON f_live.nazn_id = lim.pladv_nazn_id  

Where
      (lim.energy_id in (1)      and
       lim.cons_id   in (1)      and
       lim_y.[year] = 2007)

group by p.dog_num, f_live.tarif
order by p.dog_num, f_live.tarif

вот что он выводит
суть вопроса на один договоро приходится по 2 а может и больше тарифов, думал изпользовать TOP но как тут его применить...не пойму..или под ругому нужно?
Необходимо вывести договора с максимальным тарифом...


Это сообщение отредактировал(а) TaNK - 15.1.2008, 17:30

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  SQL.JPG 43,11 Kb


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
under_sun
Дата 15.1.2008, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Скорей всего TOP здесь не нужен. Покажи структуру бд.
--------------------
TMTOWTDI
PM MAIL ICQ   Вверх
TaNK
Дата 15.1.2008, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(under_sun @ 15.1.2008,  18:24)
Скорей всего TOP здесь не нужен. Покажи структуру бд.

ты прав TOP не понадобился....
Код

 select
        p.dog_num as "Номер_договора",
       Сумма_лимитов  = sum   (case MONTH('2007-11-01')
                          When 1  Then lim_y.value1
                          When 2  Then lim_y.value2
                          When 3  Then lim_y.value3
                          When 4  Then lim_y.value4
                          When 5  Then lim_y.value5
                          When 6  Then lim_y.value6
                          When 7  Then lim_y.value7
                          When 8  Then lim_y.value7
                          When 9  Then lim_y.value9
                          When 10 Then lim_y.value10
                          When 11 Then lim_y.value11
                          When 12 Then lim_y.value12 end),
       Тарифы_для_лимитов  = max   (f_live.tarif)

From Payer p Inner Join Limit           lim      ON p.pay_id       = lim.pay_id
             Inner Join Limit_year      lim_y    ON lim_y.limit_id = lim.limit_id
             Inner join fixinglive_part f_live   ON f_live.nazn_id = lim.pladv_nazn_id
             Inner Join fixinglive      fix_l    ON fix_l.nazn_id  = f_live.nazn_id
                                                                and (fix_l.date_beg = f_live.date_beg)
                                                            and (fix_l.date_end >= '2007-11-01') --Больше вводимой даты

Where
      (lim.energy_id in (1)      and
       lim.cons_id   in (1)      and
       lim_y.[year] = 2007      and
       p.dog_num in (21))

group by p.dog_num, f_live.tarif
order by p.dog_num, f_live.tarif




--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




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


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

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