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

Откуда:
Сообщений: 11
Добрый день! есть следуюшая задачка(не буду стараться скрывать что она из sql-eх)

Краткая информация о базе данных "Фирма вторсырья":

Фирма имеет несколько пунктов приема вторсырья. Каждый пункт получает деньги для их выдачи сдатчикам вторсырья. Сведения о получении денег на пунктах приема записываются в таблицу:
Income_o(point, date, inc)
Первичным ключом является (point, date). При этом в столбец date записывается только дата (без времени), т.е. прием денег (inc) на каждом пункте производится не чаще одного раза в день. Сведения о выдаче денег сдатчикам вторсырья записываются в таблицу:
Outcome_o(point, date, out)
В этой таблице также первичный ключ (point, date) гарантирует отчетность каждого пункта о выданных деньгах (out) не чаще одного раза в день.
В случае, когда приход и расход денег может фиксироваться несколько раз в день, используется другая схема с таблицами, имеющими первичный ключ code:
Income(code, point, date, inc)
Outcome(code, point, date, out)
Здесь также значения столбца date не содержат времени.



Фирма открывает новые пункты по приему вторсырья.
При открытии, каждому из них были выданы "подъемные" в размере 20 т.р.
Каждому из пунктов была поставлена задача об увеличении первоначального капитала до 150%, с отчетностью - один раз в день. Используя одну только таблицу Outcome_o и при условии, что пункты работают с двойной накруткой, то есть на каждый выплаченный сдатчику рубль они получают доход 2 рубля, найти:
- Для пунктов, справившихся с заданием, определить дату его выполнения и сумму денежных средств, полученных сверх плана на эту дату;
- Для пунктов, которые не справились с заданием, определить на последнюю отчетную дату сумму денежных средств, недостающих до его выполнения.
Вывод: пункт, дата выполнения (или последний день), сумма сверх плана (или недостающую сумму до плана).


вот мой запрос : select sel1.point,sel2.date,sel2.s
from
(select point ,case when min(s) < 0 then max(s) else min(s) end s
from(
select r.point ,r.date ,r.out ,(select sum(oow.out)-10000
from outcome_o oow
where r.date >= oow.date
and r.point = oow.point
) s
from outcome_o r) ss
group by point) sel1 inner join
(select r.point ,r.date ,r.out ,(select sum(oow.out)-10000
from outcome_o oow
where r.date >= oow.date
and r.point = oow.point
) s
from outcome_o r)sel2
on sel1.point = sel2.point
and sel1.s = sel2.s


система говорит что , на основной базе все нормально, а на проверочной "Несовпадение данных(2)"...Прошу помочь, не в написании запроса ,а подсказать где в чем упушение или логика где барохлит. Спасибл
17 июн 09, 22:07    [7313022]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите что не так  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36808
https://www.sql.ru/forum/actualthread.aspx?tid=22955&hl=sql+ex
17 июн 09, 22:35    [7313074]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить