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

Откуда:
Сообщений: 68487
Доброго времени суток. Составил следующий запрос:
select b.Base, d.docdate, op.SMID, w.name, op.Quantity,  sum(quantity*price) as DocSum, Price, ts.docsum as CheckSum
from Nekr.dbo.opers as op
inner join Nekr.dbo.weapon as w on w.Code= op.GoodsID
inner join Nekr.dbo.docs as d on d.ID= op.DocID
Inner Join Nekr.dbo.Bases as b on b.ID = d.BID
inner join
(select docid, bid, smid, sum(DocSum) as DocSum from
(select d.id as docid, b.id as bid, b.Base , op.SMID , op.Quantity,  sum(quantity*price) as DocSum
from opers as op
inner join docs as d on d.ID= op.DocID
Inner Join Bases as b On b.ID = d.BID
Inner Join weapon as w On w.code = op.GoodsID 
where d.DocType=6 and d.docdate between @d1 and @D2  ---- and w.code=@code
group by  d.id, b.id, b.Base  , op.SMID, op.Quantity 
) t group by docid, bid, smid having sum(DocSum) >= @DocSum)  as ts  on op.smid = ts.smid and b.id = ts.bid and d.id = ts.docid    
where d.DocType=6 
group by  Price, d.docdate, b.Base, op.SMID, w.name, op.Quantity, ts.DocSum 
order by b.Base, d.docdate, op.smid, w.name

Подскажите, как и куда проставить условие(отмечено в коде как комментарий), чтобы правильно выводить CheckSum?
Cейчас результат выглядит так(если убрать комментарий):
Base docdate SMID name Quantity DocSum Price CheckSum
а 07.06.2013 563 карандаш 30 1200 40 1200
а 07.06.2013 563 пенал 2 600 300 1200
б 06.06.2013 9896 карандаш 30 1200 40 1200
б 06.06.2013 9896 ластик 1 300 300 1200
б 06.06.2013 9896 ранец 1 6990 6990 1200

А должно на самом деле выглядеть вот так:
Base docdate SMID name Quantity DocSum Price CheckSum
а 07.06.2013 563 карандаш 30 1200 40 1800
а 07.06.2013 563 пенал 2 600 300 1800
б 06.06.2013 9896 карандаш 30 1200 40 8490
б 06.06.2013 9896 ластик 1 300 300 8490
б 06.06.2013 9896 ранец 1 6990 6990 8490
19 июн 13, 15:08    [14454482]     Ответить | Цитировать Сообщить модератору
 Re: Условие в запросе  [new]
aleks2
Guest
Для начала, научись писать алиас таблицы У КАЖДОГО ПОЛЯ в запросе.
19 июн 13, 15:21    [14454621]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить