Autor Zpráva
dex
Profil *
Ahoj, resim takovy problem ... mam tabulku se 3mi polozkami / cena1 , cena2, cena3 a potrebuji zjistit nejmensi z cen v tom jednom zaznamu
diky za rady
Kajman_
Profil *
http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_least
dex
Profil *
diky, jeste jednu radu bych potreboval
mam takovyto select:

SELECT *, MAX(pr.castka) AS max,
(CASE @price
WHEN MAX(pr.castka) IS NOT NULL THEN MAX(pr.castka)
WHEN MAX(pr.castka) IS NULL AND p.cena1 > 0 THEN p.cena1
ELSE p.cena2
END) price
FROM predmet p LEFT JOIN prihoz pr ON p.id=pr.predmet_id
WHERE ... GROUP BY p.id ORDER BY price

chci radit podle price, ale zrejme mam spatne podminky
MAX(pr.castka) je cislo int nebo NULL
p.cena1 a p.cena2 int

prvni dve podminky mi vraci null, zrejme to v takoveto forme nemohu davat do podminky, uz nevim co s tim. dik za rady
Kajman_
Profil *
A takhle to taky neseřadí?
select ifnull(max(pr.castka),if(p.cena1>0,p.cena1,p.cena2)) price, p.*
from ....
group by p.id, p.cena1, p.cena2
order by 1
dex
Profil *
funguje, mockrat dik!
dex
Profil *
mam jeste jednu otazku. kdyz chci provest podminku WHERE price > 10000 vraci mi to "Unknown column 'price' in 'where clause'" co s tim? dekuji :)
Kajman_
Profil *
Na podmínky nad sloupečky vytvořené např. díky group by je tu
having price>10000
dex
Profil *
mam tu dalsi problem :) nevim zda je to vubec resitelne v sql
tabulka predmet_atributy [ predmet_id, atributy_id ]
1 24
1 31
30 24

jak udelam podminku SELECT DISTINCT predmet_id FROM `predmet_atributy` WHERE atribut_id jsou 24 a zaroven 31?
hledam takove predmet_id ktere ma tyhle dva atribut_id

diky, nevim uz co s tim ...
Kajman_
Profil *
select predmet_id
from predmet_atributy
where atributy_id in (24,31)
group by predmet_id
having count(distinct atributy_id)=2
Joker
Profil
Dovolím si jednu poznámku mimo téma:
mam tabulku se 3mi polozkami / cena1 , cena2, cena3
Jestli to teprve vytváříte, tak přesně když zjistíte, že potřebujete pojmenovávat sloupce indexy (tj. něco1, něco2,...), je dobré se zarazit a zamyslet. To je totiž hodně podezřelé a většinou známka špatného návrhu databáze.
Nějak takhle: Pokud potřebujete sloupce s indexy v názvu (něco1, něco2,...), na 90% by ty hodnoty měly "správně" být různé řádky jednoho sloupce (možná v jiné tabulce). Pokud ty sloupce navíc potřebujete mezi sebou porovnávat a řadit, je to na 95%... a ve chvíli, kdy se výběry z tabulky právě kvůli těm sloupcům začnou zamotávat do neobvyklých a složitých dotazů, je to 99,9%.
dex
Profil *
Kajman_ > dekuji, podobne jsem to nejak zkousel, ale az k having count(distinct atributy_id)=2 jsem nedosel
Joker > sloupce mam pojmenovane jinak, samotne pojmenovani cena1, cena2 by mi ve finale nic nereklo, tady jsem uvadel jen v rychlosti :) ale diky za pripominku
Toto téma je uzamčeno. Odpověď nelze zaslat.