Форум: "Начинающим";
Текущий архив: 2008.09.07;
Скачать: [xml.tar.bz2];
ВнизОкругление в запросе = Capability not supported ??? (D2007) Найти похожие ветки
← →
petvv (2008-07-29 08:22) [0]Был запрос:
select Fuel.Marka, Osnovan.Name, SUM(Statist.LitFact) Litr,
SUM(Statist.CurFact) Summa,
((SUM(Statist.LitFact)*Statist.Price))-SUM(Statist.CurFact)) Delta
from Fuel, Statist, Osnovan
where
Statist.DateTime>=:QDBeg and Statist.DateTime<=:QDEnd
and
Statist.Product=Fuel.Num
and
Statist.Osnovanye=Osnovan.Num
group by Marka, Name
having SUM(Statist.CurFact)<>0
union
select Fuel.Marka, Osnovan.Name, SUM(Statist.LitFact) Litr,
SUM(Statist.CurFact) Summa,
((SUM(Statist.LitFact)*0))-SUM(Statist.CurFact)) Delta
from Fuel, Statist, Osnovan
where
Statist.DateTime>=:QDBeg and Statist.DateTime<=:QDEnd
and
Statist.Product=Fuel.Num
and
Statist.Osnovanye=Osnovan.Num
group by Marka, Name
having SUM(Statist.CurFact)=0
усё работало.
Приспичило поставить округление, ставил cast и round
select Fuel.Marka, Osnovan.Name, SUM(Statist.LitFact) Litr,
SUM(Statist.CurFact) Summa,
(cast((SUM(Statist.LitFact)*Statist.Price) as decimal(15,2))-SUM(Statist.CurFact)) Delta
from Fuel, Statist, Osnovan
where
Statist.DateTime>=:QDBeg and Statist.DateTime<=:QDEnd
and
Statist.Product=Fuel.Num
and
Statist.Osnovanye=Osnovan.Num
group by Marka, Name
having SUM(Statist.CurFact)<>0
union
select Fuel.Marka, Osnovan.Name, SUM(Statist.LitFact) Litr,
SUM(Statist.CurFact) Summa,
(cast((SUM(Statist.LitFact)*0) as decimal(15,2))-SUM(Statist.CurFact)) Delta
from Fuel, Statist, Osnovan
where
Statist.DateTime>=:QDBeg and Statist.DateTime<=:QDEnd
and
Statist.Product=Fuel.Num
and
Statist.Osnovanye=Osnovan.Num
group by Marka, Name
having SUM(Statist.CurFact)=0
select Fuel.Marka, Osnovan.Name, SUM(Statist.LitFact) Litr,
SUM(Statist.CurFact) Summa,
(round((SUM(Statist.LitFact)*Statist.Price),2)-SUM(Statist.CurFact)) Delta
from Fuel, Statist, Osnovan
where
Statist.DateTime>=:QDBeg and Statist.DateTime<=:QDEnd
and
Statist.Product=Fuel.Num
and
Statist.Osnovanye=Osnovan.Num
group by Marka, Name
having SUM(Statist.CurFact)<>0
union
select Fuel.Marka, Osnovan.Name, SUM(Statist.LitFact) Litr,
SUM(Statist.CurFact) Summa,
(round((SUM(Statist.LitFact)*0),2)-SUM(Statist.CurFact)) Delta
from Fuel, Statist, Osnovan
where
Statist.DateTime>=:QDBeg and Statist.DateTime<=:QDEnd
and
Statist.Product=Fuel.Num
and
Statist.Osnovanye=Osnovan.Num
group by Marka, Name
having SUM(Statist.CurFact)=0
выдаёт Capability not supported ???
и где у меня коэффициент кривизны рук начинает резко отличаться от 0.
← →
palva © (2008-07-29 08:48) [1]cast и round требуют дополнительных параметров, касающихся выходного формата.
Например round(43.666, 2) должно возвращать 43.67 (2 знака после точки)
Но это надо читать документацию к конкретному SQL-серверу, который у вас не указан.
← →
petvv (2008-07-29 08:56) [2]Paradox, BDE
← →
Нат (2008-07-29 08:56) [3]
> (round((SUM(Statist.LitFact)*0),2)-SUM(Statist.CurFact)) Delta
Функции должны поддерживаться сервером БД.
Что дает умножение на ноль?
Можно попробовать упростить слегка выражение и вынести операцию СУММ за скобки
SUM( Statist.LitFact*Statist.Price - Statist.CurFact )
← →
palva © (2008-07-29 08:56) [4]
> round(43.666, 2) должно возвращать 43.67
Вообще я немного ошибся, MS SQL возвращает 43.670. Но неважно. Сначала выясните с каким SQL-сервером вы работаете.
← →
petvv (2008-07-29 09:13) [5]SQL сервера нет. Есть софтина, которая управляет АЗС, работает на БД Paradox. Использую D2007, для доступа к БД использую BDE
← →
Johnmen © (2008-07-29 09:30) [6]
> petvv (29.07.08 08:22)
А в чем сакральный смысл округления в запросе?
← →
petvv (2008-07-29 09:43) [7]Далее из запроса напрямую выкидывается в отчёт FR расчитывается потеря на скидках
← →
Johnmen © (2008-07-29 09:52) [8]Почему бы не воспользоваться округлением в генераторе отчетов?
← →
petvv (2008-07-29 09:59) [9]Люди, вы мне можете ответить на мой вопрос, там можно, но не нужно
← →
Johnmen © (2008-07-29 10:01) [10]Тебе уже ответили: Capability not supported
← →
palva © (2008-07-29 10:11) [11]
> petvv (29.07.08 08:56) [2]
>
> Paradox, BDE
Я не знаю, как это делается в BDE. А документацию для вас мне изучать лень.
← →
petvv (2008-07-29 10:19) [12]В отчёте округление делать бесполезно, потому, что в отчёт выводится итог по маркам бензинов, а данные беруться из базы чеков и если на каждый чек не произвести округление, то расчитаная потеря будет фуфельной
← →
Anatoly Podgoretsky © (2008-07-29 10:23) [13]Справка говорит, что функции Round нет в LocalSQL о чем и говорит сообщение об ошибке.
← →
petvv (2008-07-29 10:58) [14]О чём говорит сообщение я понимаю, как с этим бороться
← →
Anatoly Podgoretsky © (2008-07-29 11:01) [15]Ну так не поддержано же.
← →
Правильный$Вася (2008-07-29 11:22) [16]
> как с этим бороться
держать удар, сцепить зубы
← →
Amoeba © (2008-07-29 14:50) [17]
> petvv (29.07.08 10:58) [14]
>
> О чём говорит сообщение я понимаю, как с этим бороться
Как? Каком кверху. Делать округление там, где оно возможно и не желать странного.
← →
Нат (2008-07-29 18:22) [18]Удалено модератором
← →
Johnmen © (2008-07-30 08:50) [19]Удалено модератором
← →
Нат (2008-07-30 09:31) [20]Удалено модератором
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.09.07;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.005 c