Autor | Zpráva | ||
---|---|---|---|
dex Profil * |
#1 · Zasláno: 4. 1. 2009, 23:39:42
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 * |
#2 · Zasláno: 5. 1. 2009, 09:30:32
|
||
dex Profil * |
#3 · Zasláno: 5. 1. 2009, 22:47:20
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 * |
#4 · Zasláno: 5. 1. 2009, 22:57:56
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 * |
#5 · Zasláno: 5. 1. 2009, 23:23:00
funguje, mockrat dik!
|
||
dex Profil * |
#6 · Zasláno: 7. 1. 2009, 16:50:46
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 * |
#7 · Zasláno: 7. 1. 2009, 18:58:50
Na podmínky nad sloupečky vytvořené např. díky group by je tu
having price>10000 |
||
Časová prodleva: 3 dny
|
|||
dex Profil * |
#8 · Zasláno: 10. 1. 2009, 12:46:58
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 |
#10 · Zasláno: 10. 1. 2009, 13:59:30
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 * |
#11 · Zasláno: 10. 1. 2009, 18:01:47
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 |
||
Časová prodleva: 14 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0