Rafał Mieszkowski

Rafał Mieszkowski Student, Wojskowa
Akademia Techniczna

Temat: iloczyn

witam
w jaki sposób mogę wykonać iloczyn dwóch kolumn w bazie postgresql ? operator * nie działa ?

Dzięki za pomoc.

konto usunięte

Temat: iloczyn

Przykład jakiś? Błąd jakiś? Szklana kula mi się zepsuła, tym bardziej, że u mnie operator * działa.
Maciej G.

Maciej G. Projektant /
Programista, Famor
S.A.

Temat: iloczyn

A może zapomniałeś magicznego słówka "AS" ?

Tak jak kolega napisał podaj przykład zapytania, które Ci nie działa ( i zwracany błąd).

Pozdrawiam.
Rafał Mieszkowski

Rafał Mieszkowski Student, Wojskowa
Akademia Techniczna

Temat: iloczyn

Witam przedstawiam zapytanie jakie piszę i zwracany błąd:

select id, nazwisko, imię

pojemnik_n_120l___m01_sztuk_selektywne as "N_120_M01_s", pojemnik_n_120l___m01_sztuk_zmieszane as "N_120_M01_z", pojemnik_n_120l___m01_częstotliwość as "częstotliwość_n_120_m01",
pojemnik_n_120l___m01_sztuk_selektywne * pojemnik_n_120l___m01_sztuk_zmieszane as "wynik"
from "tabela"

Poniżej zwracany błąd

BŁĄD: operator nie istnieje: character varying * character varying
LINE 5: pojemnik_n_120l___m01_sztuk_selektywne * pojemnik_n_120l___...
^
HINT: Brak operatora pasującego do podanej nazwy i typu(ów) argumentów. Być może należy dodać jawne rzutowanie typów.
********** Błąd **********

BŁĄD: operator nie istnieje: character varying * character varying
Stan SQL: 42883
Wskazówka: Brak operatora pasującego do podanej nazwy i typu(ów) argumentów. Być może należy dodać jawne rzutowanie typów.
Znak: 335
Maciej G.

Maciej G. Projektant /
Programista, Famor
S.A.

Temat: iloczyn

Rafał M.:
Witam przedstawiam zapytanie jakie piszę i zwracany błąd:
Poniżej zwracany błąd

BŁĄD: operator nie istnieje: character varying * character varying
LINE 5: pojemnik_n_120l___m01_sztuk_selektywne * pojemnik_n_120l___...
^
HINT: Brak operatora pasującego do podanej nazwy i typu(ów) argumentów. Być może należy dodać jawne rzutowanie typów.
********** Błąd **********

BŁĄD: operator nie istnieje: character varying * character varying
Stan SQL: 42883

Hej a jak ty chcesz mnożyć kolumny typu VARCHAR (ciągi znaków zmienej długości) ?

To nie są kolumny o wartościach liczbowych - musisz je najpierw zamienić na jakiś typ liczbowy (np. duble) ! Oczywiście pod warunkiem, że wartości tych kolumn dają się zamienić na liczbę.

cast(kolumna as double precision)

Jeśli nie pasuje ci double to zamień na decimal (x,y) itp.

Pozdrawiam.

BTW: zwracany błąd mówi precyzyjnie że nie ma takiej sygnatury funkcji dla operatora * (pod maską operator jest funkcją/metodą.) Czyli brak sygnatury dla parametrów :
iloczyn(Varchar, Varchar)Ten post został edytowany przez Autora dnia 28.09.15 o godzinie 16:58

Temat: iloczyn

"Ala" razy "kota" = ?
Rafał Mieszkowski

Rafał Mieszkowski Student, Wojskowa
Akademia Techniczna

Temat: iloczyn

ok dziękuje za pomoc
Maciej G.

Maciej G. Projektant /
Programista, Famor
S.A.

Temat: iloczyn

Adrian O.:
"Ala" razy "kota" = "Ala ma kota" ;)
Rafał Mieszkowski

Rafał Mieszkowski Student, Wojskowa
Akademia Techniczna

Temat: iloczyn

tak po konwersji typu danych działa iloczyn

konto usunięte

Temat: iloczyn

Chociaż czemu nie... (poza tym, że to będzie wolniejsze, niż zmiana typu kolumny):


create function multext(varchar, varchar) returns integer as
$$
select $1::integer * $1::integer
$$ language sql;

create operator * (
procedure=multext,
leftarg=varchar,
rightarg=varchar);
Rafał Mieszkowski

Rafał Mieszkowski Student, Wojskowa
Akademia Techniczna

Temat: iloczyn

ok Dziękować za pomoc

Następna dyskusja:

ILOCZYN




Wyślij zaproszenie do