![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
masik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 22.1.2007 Репутация: нет Всего: нет |
Пару дней назад спрашивала об одном запросе...теперь для меня задача усложнилась....
![]() Есть таблица с полями: остаток_по_кредиту, дни_просрочки,Точка. Нужно выбрать сумму остатков для тех кредитов, где просрочка>1, потом те, где просрочка>30,>60 для каждой точки. Каждую сумму нужно разделить на общую сумму остатка для этой точки. Вот мой нерабочий код: ![]()
Спасибо заранее! Очень жду помощи, нужно срочно по работе! |
|||
|
||||
IrStG |
|
|||
Новичок Профиль Группа: Участник Сообщений: 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 точка так не подойдет ? |
|||
|
||||
masik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 22.1.2007 Репутация: нет Всего: нет |
Спасибо большое, у меня тоже были такие варианты, но просто потом мне нужно будет делать union с другим запросом...таким же, только с другой таблицы, поэтому нужно выбрать в строчку данные....
![]() Очень жду помощи, извините за такие вопросы..... |
|||
|
||||
AndySphinx |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 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), но идея может поможет |
|||
|
||||
masik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 22.1.2007 Репутация: нет Всего: нет |
AndySphinx, ОГРОМНОЕ тебе спасибо!
Во-первых, все заработала с первого раза именно так, как ты написал ![]() Во-вторых, очень нужна была именно ИДЕЯ, как это делается в принципе!Опыта работы с SQL почти нет ![]() ![]() Пасибки еще раз! |
|||
|
||||
Spectre12 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 22.9.2006 Репутация: нет Всего: нет |
Спасибо большое
![]() Теперь я свой запрос сделал =) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "MS SQL" | |
|
Запрещается! Публиковать ссылки и обсуждать взлом чего бы то ни было.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MS SQL Server | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |