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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы с результирующими данными, MS SQL Server 
:(
    Опции темы
Churchill
  Дата 27.4.2004, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

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

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

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

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

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

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

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

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


PM MAIL   Вверх
shilnik
Дата 27.4.2004, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Наверное примерно так:

Код
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


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


--------------------
каталог товаров qp1
PM MAIL WWW   Вверх
BSV_Sergey
Дата 1.12.2004, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Можно попробовать следующий запрос, должно работать

Код
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





Это сообщение отредактировал(а) Vit - 1.12.2004, 16:42
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

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

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

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

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

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


 




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


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

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