Autor Zpráva
bonescrusher
Profil *
Zdravím prosím o pomoc.

Mám tabulku, s hračkami, ve sloupci CENA mám cenu hračky a ve sloupci SAZBADPH mám sazbu DPH a potřeboval bych vrátit sloupec CENASDPH, kde by byla spočítána cena se sazbou DPH. To bych ještě uměl, ale potřebuju manipulovat se všemi sloupci jako nově pojemnovanými, protože musím aplikovat ještě slevy atd.


SELECT
 DISTINCT `hracky`.`ID`,
 `hracky`.`CENA` AS "HRACKYCENA",
 `hracky`.`SAZBADPH` AS "HRACKYSAZBADPH",
 (`HRACKYCENA`+ `HRACKYCENA` * (`HRACKYSAZBADPH` / 100)) AS "CENASDPH"
FROM `hracky`



Zaboha mně to nechce vzít, phpadmin tvrdí Sloupec 'HRACKYCENA' v field list není zcela jasný nebo, že sloupec neexistuje.
Díky všem.
Kajman_
Profil *
Kolem aliasu se v mysql nedávají uvozovky ale zpětný apostof, který máte u názvů sloupců.
bonescrusher
Profil *
I se zpětnými úvozovkami to nefunguje.

phpadmin píše Neznámý sloupec `HRACKYSAZBADPH` v field list
Kajman_
Profil *
Nevšiml jsem si, že je hned používáte. Myslím, že se je dá použít až v order by a having. Nebo v nadřazeném selectu. Použijte normálně ty sloupečky.

SELECT
 DISTINCT `hracky`.`ID`,
 `hracky`.`CENA` AS `HRACKYCENA`,
 `hracky`.`SAZBADPH` AS `HRACKYSAZBADPH`,
 (`hracky`.`CENA`+ `hracky`.`CENA` * (`hracky`.`SAZBADPH` / 100)) AS `CENASDPH`
FROM `hracky`
bonescrusher
Profil *
Děkuji za nápady. Musím ale použít nové pojmenování, protože na sloupec `HRACKYCENA` se ještě váže sleva, kterou jsem se m nechtěl psát, protože by to bylo nepřehledné. Sloupec `HRACKYCENA` je složen z několika podmínek, asi pět řádků textu a psát je do dotazu dvakrát se mně zdá zbytečné. Přece na tohle museli vývojaři MySQL myslet a nějak to vyřešit, nemám pravdu?
Kajman_
Profil *
Znám jen dva způsoby, jak to v mysql použít, buď jako poddotaz

select t.*, (`HRACKYCENA` *(1+ (ifnull(`HRACKYSAZBADPH`,0) / 100))) AS "CENASDPH"
 from
(SELECT
 DISTINCT `hracky`.`ID`,
 `hracky`.`CENA` AS `HRACKYCENA`,
 `hracky`.`SAZBADPH` AS `HRACKYSAZBADPH`
FROM `hracky`) t


nebo to dát do proměnné

SELECT
 DISTINCT `hracky`.`ID`,
 @cena:=`hracky`.`CENA` AS `HRACKYCENA`,
 @dan:=`hracky`.`SAZBADPH` AS `HRACKYSAZBADPH`,
 (@cena * (1+(ifnull(@dan,0)/ 100))) AS `CENASDPH`
FROM `hracky`


Ale možná existuje ještě něco jiného.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0