Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.09.07;
Скачать: CL | DM;

Вниз

Округление в запросе = 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.014 c
15-1216609884
Пломба
2008-07-21 07:11
2008.09.07
Printer selected is not valid


9-1174296930
КувалдаСофт
2007-03-19 12:35
2008.09.07
Задачка с интерфейсами


15-1216359597
zdm
2008-07-18 09:39
2008.09.07
Модераторы-ХЭЛП! логин delphimaster.ru


2-1217326915
wsv
2008-07-29 14:21
2008.09.07
ADOConnection и его ConnectionTimeout


15-1216176501
Slider007
2008-07-16 06:48
2008.09.07
С днем рождения ! 16 июля 2008 среда