Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > Проблемы с результирующими данными


Автор: Churchill 27.4.2004, 11:41
Здравствуйте.
Я еще новичок в SQL-запросах и у меня возникла следующая проблема:

Есть таблица, отображающая данные по накопительным счетам клиентов развлекательного комплекса, которая содержит примерно следующие столбцы :

стлб1 - идентификатор клиента
стлб2 - идентификатор зоны комплекса (типа ресторан, бильярд, боулинг....)
стлб3 - накопленная сумма данным клиентом по данной зоне комплекса

Т.е. данные в таблице выглядят примерно так:

стлб1 стлб2 стлб3
---------------------------------------------------------
Вася Бильярд 500
Вася Боулинг 100
Петя Ресторан 1000
Петя Бильярд 250
Петя Боулинг 900

Вопрос: каким образом можно получить следующий результат и можно ли как-то получить его одним запросом?

Клиент | Сумма (общая) | Сумма (по определенной зоне комплекса) | Сумма (по остальным зонам комплекса )|

Т.е. результат должен выглядеть так (отбираем по зоне Бильярд):

Клиент Сумма (итого) Сумма(Бильярд) Сумма(остальные)
--------------------------------------------------------------------------------------------------------------
Вася 600 500 100
Петя 2150 250 1900


Автор: shilnik 27.4.2004, 12:31
Наверное примерно так:

Код
Select t1.стлб1, Sum(t1.стлб3), sum(t2.стлб3) ,sum(t3.стлб3)
From ((Table1 t1 inner join Table1 t2 on t1.стлб1=t2.стлб1) inner join Table1 t3 on t1.стлб1=t3.стлб1)
Where t2.стлб2="Бильярд" and t3.стлб2<>"Бильярд"
Group By t1.стлб1


Попробуй, я не пробовал.

Автор: BSV_Sergey 1.12.2004, 12:09
Можно попробовать следующий запрос, должно работать

Код
Select
t1.field1,
 sum (t1.field3) as sum_total,
(select sum(t2.field3)
 from table1 t2
 where t2.field1 = t1.field1
 and t2.field2 = 'Бельярд') as sum_belyzrd,
(select sum(t3.field3)
 from table1 t3 where t3.field1 = t1.field1
 and t3.field2 <> 'Бельярд') as sum_othe
from
table1 t1
group by
t1.field1




Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)