Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 не простой запрос на ссумирование  [new]
Marishka25
Member

Откуда:
Сообщений: 150
не сильна я в написание запросов на sql поэтому буду рада любой инфе если куда-нить тыкните или предложите вариант.
Имеются 2 таблицы: T1 с полями (oper_id, Oper_Date), T2 с полями (oper_id, part_num, sum). oper_date --- дата когда part_num получил сумму.
Нужно вывести информацию по тем part_num, которые удовлетворяют условию (от data1 до data2) и на сумму >SUMMA, причем в таблице Т2 нужно проссумировать все записи с одним и тем же part_num.
Например:
для data1=01.01.2011 data2=31.01.2011 SUMMA=200
T1
oper_id Oper_Date
1 01.01.2011
2 02.01.2011
3 02.01.2011
4 05.01.2011
5 10.01.2011


T2
oper_id part_num sum
1 005 100
2 008 50
3 005 200
4 007 100
5 008 450

т.е. результат должен быть

part_num sum
005 300
008 500

В принципе все понятно, сначала надо соединить 2 таблицы по oper_id , потом задать select where период. Но вот как собрать сумму по каждому part_num (((
7 июн 11, 00:00    [10773812]     Ответить | Цитировать Сообщить модератору
 Re: не простой запрос на ссумирование  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3754
group by
7 июн 11, 00:40    [10773948]     Ответить | Цитировать Сообщить модератору
 Re: не простой запрос на ссумирование  [new]
master_sql
Member

Откуда: Владивосток
Сообщений: 93
Marishka25,

setect t2.part_num, sum(t2.sum)
from t2 inner join t1 on t2.oper_id = t1.oper_id
where t1.oper_date between data1 and data2
group by t2.part_num
7 июн 11, 06:24    [10774225]     Ответить | Цитировать Сообщить модератору
 Re: не простой запрос на ссумирование  [new]
Marishka25
Member

Откуда:
Сообщений: 150
master_sql
Marishka25,

setect t2.part_num, sum(t2.sum)
from t2 inner join t1 on t2.oper_id = t1.oper_id
where t1.oper_date between data1 and data2
group by t2.part_num


а если еще и на сумму добавить условие, так будет правильно?

setect t2.part_num, sum(t2.sum)
from t2 inner join t1 on t2.oper_id = t1.oper_id
where t1.oper_date between data1 and data2 and sum(t2.sum)>SUMMA
group by t2.part_num
7 июн 11, 11:53    [10775573]     Ответить | Цитировать Сообщить модератору
 Re: не простой запрос на ссумирование  [new]
Добрый Э - Эх
Guest
HAVING
7 июн 11, 13:01    [10776193]     Ответить | Цитировать Сообщить модератору
 Re: не простой запрос на ссумирование  [new]
master_sql
Member

Откуда: Владивосток
Сообщений: 93
Добрый Э - Эх,

чета я правда тупанул...

setect t2.part_num, sum(t2.sum)
from t2 inner join t1 on t2.oper_id = t1.oper_id
where t1.oper_date between data1 and data2
group by t2.part_num
having sum(t2.sum) > summa

Marishka25,

если Вам частенько придется работать с T-SQL, советую сайт с Упражнениями sql-ex.ru - не пожалеете
8 июн 11, 03:50    [10780067]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить