Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > арифметические выражения


Автор: ilmurat 19.12.2012, 12:59
Доброго всем времени суток, может кто подсказать как правильно и грамотно реализовать, нахождение разности ячеек. Допустим tm3 = tm2 - tm1. И с помощью вьюхи вывести все эти данные на экран. Заранее благодарен.

Автор: Zloxa 19.12.2012, 13:18
Код

tm2-tm1 as tm3

Автор: ilmurat 19.12.2012, 13:24
это в коде формирования таблицы???

Автор: Zloxa 19.12.2012, 13:26
нет, в коде вьюхи

Автор: ilmurat 19.12.2012, 13:28
Код

select     "DEFECTS"."DSC" as "DSC",
     "DEFECTS"."TM1" as "TM1",
     "DEFECTS"."TM2" as "TM2",
     "DEFECTS"."WRK" as "WRK",
     "DET"."DET" as "DET",
     "DET"."UCHAST" as "UCHAST",
     "DET"."EXTNAME" as "EXTNAME",
     "OBORUD"."OBORUD" as "OBORUD",
     "OTV"."OTV" as "OTV",
     "OTV"."DOLZHN" as "DOLZHN",
     "OTV"."OTD" as "OTD" 
         "DEFECTS"."TM2"-"TM1" as "tm3"
 from     "OTV" "OTV",
     "OBORUD" "OBORUD",
     "DET" "DET",
     "DEFECTS" "DEFECTS" 
 where   "DEFECTS"."DET_ID"="DET"."DET_ID"
 and     "DET"."OBORUD_ID"="OBORUD"."OBORUD_ID"
 and     "DEFECTS"."OTV_ID"="OTV"."OTV_ID"


Добавлено @ 13:28
При этом выдает ошибку

Добавлено @ 13:29
Query cannot be parsed, please check the syntax of your query. (ORA-00923: FROM keyword not found where expected)

Автор: Zloxa 19.12.2012, 13:30
Запятая, алиас для TM1 

Автор: ilmurat 19.12.2012, 13:36
Все отлично, создалось, только вот его не видно(
не могу понять в чем причина

Автор: ilmurat 19.12.2012, 14:39
+000000000 02:19:00.000000   а как установить маску чтобы не было столько нулей??? стандартная почему то не помогает

Автор: Zloxa 19.12.2012, 16:21
обратитесь к документации используемых вами средств визуализации. Форматирование вывода это их забота. Оракл честно отдает интервал, а как его отображать выбирает уже тот, кому этот интервал отдается. Хотя, конечно, можете преобразовать интервал в строку функцией http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions200.htm#SQLRF06129

Автор: ilmurat 20.12.2012, 06:32
Код

TO_CHAR("DOLZHN", 'DD-MON-YYYY HH24:MI:SSxFF TZH:TZM') AS "DOLZHN"


ORA-00001: unique constraint (APEX_040000.WWV_FLOW_WORKSHEET_COLUMNS_UK2) violated


Unable to change Interactive Report query.

Автор: Zloxa 20.12.2012, 07:26
to_char не может вызвать ORA-00001.
Эта ошибка не от того кода

Автор: ilmurat 20.12.2012, 07:29
Код

select     "DEFECTS"."DSC" as "DSC",
     "DEFECTS"."TM1" as "TM1",
     "DEFECTS"."TM2" as "TM2",
     "DEFECTS"."WRK" as "WRK",
     "DET"."DET" as "DET",
     "DET"."UCHAST" as "UCHAST",
     "DET"."EXTNAME" as "EXTNAME",
     "OBORUD"."OBORUD" as "OBORUD",
     "OTV"."OTV" as "OTV",
         "DEFECTS"."TM2"-"TM1" as "DOLZHN",
TO_CHAR("DOLZHN", 'DD-MON-YYYY HH24:MI:SSxFF TZH:TZM') AS "DOLZHN"
 from     "OTV" "OTV",
     "OBORUD" "OBORUD",
     "DET" "DET",
     "DEFECTS" "DEFECTS" 
 where   "DEFECTS"."DET_ID"="DET"."DET_ID"
 and     "DET"."OBORUD_ID"="OBORUD"."OBORUD_ID"
 and     "DEFECTS"."OTV_ID"="OTV"."OTV_ID"


TO_CHAR("DOLZHN", 'DD-MON-YYYY HH24:MI:SSxFF TZH:TZM') AS "DOLZHN"
эсли без этой строки то ошибки то и нет

Добавлено через 2 минуты и 30 секунд
Column Type:    OTHER

все попытки изменить тип заканчиваются либо ошибкой что приведена сверху либо, ошибкой типа нет числа там где оно ожидалось

Добавлено через 6 минут и 10 секунд
Код

 TO_NUMBER ("DOLZHN") as "DOLZHN",


ORA-00001: unique constraint (APEX_040000.WWV_FLOW_WORKSHEET_COLUMNS_UK2) violated

Автор: Zloxa 20.12.2012, 07:52
Селект не может нарушить констрайнт.
Эта ошибка не от того кода 

Автор: ilmurat 20.12.2012, 08:10
ну тогда что может быть причиной возникновения этой ошибки, я больше причин не нахожу, так как повторюсь, при удалении строки кода ошибка сама по себе пропадает, и все работает пректрасно

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)