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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите еще раз с запросом! Как выбрать две суммы с одной таблицы 
:(
    Опции темы
masik
Дата 31.1.2007, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Пару дней назад спрашивала об одном запросе...теперь для меня задача усложнилась.... smile 
Есть таблица с полями: остаток_по_кредиту, дни_просрочки,Точка.
Нужно выбрать сумму остатков для тех кредитов, где просрочка>1, потом те, где просрочка>30,>60 для каждой точки.
Каждую сумму нужно разделить на общую сумму остатка для этой точки.

Вот мой нерабочий код: smile 



Код

select a.Точка,sum(a.по_кредиту)/(select sum(по_кредиту) from dbo."200605" b where b.Точка = a.Точка),
       sum(c.по_кредиту)/(select sum(по_кредиту) from dbo."200606" b where b.Точка = c.Точка)
from dbo."200605" a,dbo."200605" c
where  a.проср_дней > 1 and c.проср_дней > 1
group by a.Точка,c.Точка
order by a.Точка,c.Точка


Спасибо заранее! Очень жду помощи, нужно срочно по работе!

PM MAIL   Вверх
IrStG
Дата 4.2.2007, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



select '>1',a.точка,sum(a.по_кредиту)/(select sum(b.по_кредиту) from dbo."200605" b where b.точка=a.точка group by точка) from dbo."200605" a where a.проср_дней>1 group by точка 
union
select '>30',a.точка,sum(a.по_кредиту)/(select sum(b.по_кредиту) from dbo."200605" b where b.точка=a.точка group by точка) from dbo."200605" a where a.проср_дней>30 group by точка 
union 
select '>60',a.точка,sum(a.по_кредиту)/(select sum(b.по_кредиту) from dbo."200605" b where b.точка=a.точка group by точка) from dbo."200605" a where a.проср_дней>60 group by точка 

так не подойдет ? 
PM MAIL   Вверх
masik
Дата 5.2.2007, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо большое, у меня тоже были такие варианты, но просто потом мне нужно будет делать union с другим запросом...таким же, только с другой таблицы, поэтому нужно выбрать в строчку данные.... smile 

Очень жду помощи, извините за такие вопросы.....
PM MAIL   Вверх
AndySphinx
Дата 5.2.2007, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



masik посмотри вот это

SELECT s_all.Точка, s1.sum_по_кредиту / s_all.sum_по_кредиту AS del1
      , s30.sum_по_кредиту / s_all.sum_по_кредиту AS del30
      , s60.sum_по_кредиту / s_all.sum_по_кредиту AS del60
  FROM (SELECT   Точка, SUM(по_кредиту) AS sum_по_кредиту
            FROM dbo."200605"
        GROUP BY Точка) s_all
      ,(SELECT   Точка, SUM(по_кредиту) AS sum_по_кредиту
            FROM dbo."200605"
           WHERE проср_дней > 1
        GROUP BY Точка) s1
      ,(SELECT   Точка, SUM(по_кредиту) AS sum_по_кредиту
            FROM dbo."200605"
           WHERE проср_дней > 30
        GROUP BY Точка) s30
      ,(SELECT   Точка, SUM(по_кредиту) AS sum_по_кредиту
            FROM dbo."200605"
           WHERE проср_дней > 60
        GROUP BY Точка) s60
 WHERE s_all.Точка *= s1.Точка AND s_all.Точка *= s30.Точка
       AND s_all.Точка *= s60.Точка

то что сразу будет работат, не гарантирую (писал под Oracle), но идея может поможет
PM MAIL   Вверх
masik
Дата 5.2.2007, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



AndySphinx, ОГРОМНОЕ тебе спасибо!

Во-первых, все заработала с первого раза именно так, как ты написал smile 
Во-вторых, очень нужна была именно ИДЕЯ, как это делается в принципе!Опыта работы с SQL почти нет smile  без опытных советов  не разобраться smile 

Пасибки еще раз!
PM MAIL   Вверх
Spectre12
Дата 28.2.2007, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо большое smile
Теперь я свой запрос сделал =)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

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

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

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

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

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


 




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


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

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