Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1217429651
lavgirls
2008-07-30 18:54
2008.09.07
Состояние подключения


2-1217313439
Ilg
2008-07-29 10:37
2008.09.07
Удаление папки, содержащей БД


2-1217350317
Сергей
2008-07-29 20:51
2008.09.07
Как добавить unit из другой программы?


15-1216189504
Гость
2008-07-16 10:25
2008.09.07
Replace all


2-1217280184
ekto
2008-07-29 01:23
2008.09.07
Метод Locate





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский