Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 12:50 27.06.24 
Клубове/ Компютри и Интернет / Бази данни Всички теми Следваща тема Пълен преглед*
Информация за клуба
Тема не ми излизат сметките
Авторk (Нерегистриран) 
Публикувано04.06.03 12:15  



При изчисленията не получавам "правилните стойности". Имате ли идейка защо става това нещо и как да се справя с проблема.
Ето едно примерче:
(полетата, вкл. в изчисленията (MDWorkDays,WDays) са от тип tinyint(2))
Тая sum функция при групиране дава 4 ст. вповече.

mysql> SELECT 110/T_MonthDays.MDWorkDays*SUM(T_Work.WDays) AS A3 FROM T_Work,T_Employed_Ch,T_Employed,T_MonthDays WHERE T_Work.CRid=T_Employed.CRid AND T_Employed_Ch.URid=T_Employed.URid AND T_Employed_Ch.UURid=T_Work.UURid AND T_MonthDays.MDMonth=T_Work.WMonth AND T_Work.CRid=2 AND T_Work.WMonth='2003-04-01' AND T_Work.WPayMonth<='2003-05-01' AND T_Employed.URid=2 GROUP BY T_Employed.URid;
+--------+
| A3 |
+--------+
| 110.04 |
+--------+
1 row in set (0.00 sec)

mysql> SELECT 110/T_MonthDays.MDWorkDays*T_Work.WDays AS A3 FROM T_Work,T_Employed_Ch,T_Employed,T_MonthDays WHERE T_Work.CRid=T_Employed.CRid AND T_Employed_Ch.URid=T_Employed.URid AND T_Employed_Ch.UURid=T_Work.UURid AND T_MonthDays.MDMonth=T_Work.WMonth AND T_Work.CRid=2 AND T_Work.WMonth='2003-04-01' AND T_Work.WPayMonth<='2003-05-01' AND T_Employed.URid=2;
+--------+
| A3 |
+--------+
| 110.00 |
+--------+
1 row in set (0.00 sec)

mysql> select T_MonthDays.MDWorkDays from T_MonthDays where MDMonth='2003-04-01';
+------------+
| MDWorkDays |
+------------+
| 21 |
+------------+
1 row in set (0.00 sec)

mysql> SELECT SUM(T_Work.WDays) FROM T_Work,T_Employed_Ch,T_Employed WHERE T_Work.CRid=T_Employed.CRid AND T_Employed_Ch.URid=T_Employed.URid AND T_Employed_Ch.UURid=T_Work.UURid AND T_Work.CRid=2 AND T_Work.WMonth='2003-04-01' AND T_Work.WPayMonth<='2003-05-01' AND T_Employed.URid=2 GROUP BY T_Employed.URid; +-------------------+
| SUM(T_Work.WDays) |
+-------------------+
| 21 |
+-------------------+
1 row in set (0.00 sec)

mysql> select 110/21*21;
+-----------+
| 110/21*21 |
+-----------+
| 110.00 |
+-----------+
1 row in set (0.00 sec)

mysql> show variables like 'version';
+---------------+---------+
| Variable_name | Value |
+---------------+---------+
| version | 3.23.41 |
+---------------+---------+
1 row in set (0.00 sec)



Цялата тема
ТемаАвторПубликувано
* не ми излизат сметките k   04.06.03 12:15
. * Обикновено Sum cast-ва до Float NDeu   04.06.03 12:59
. * Re: Обикновено Sum cast-ва до Float k   04.06.03 13:28
. * Нищо, че става дума ЗА ЦЕЛИ ЧИСЛА NDeu   04.06.03 14:39
. * Re: Нищо, че става дума ЗА ЦЕЛИ ЧИСЛА k   04.06.03 16:26
. * Re: Нищо, че става дума ЗА ЦЕЛИ ЧИСЛА NDeu   04.06.03 17:51
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.