Autor Zpráva
Fanda
Profil *
Mám např. tabulku firma a v ní atributy zaměstnanci a platy a chci znát všechny zaměstnance, kteří mají stejný plat. Samozřejmě pokud bude mezi nimi skupina, která bude mít plat x a další skupina plat y i je podle toho rozdělit do skupin.

Lze to udělat nějakým klasickým způsobem pomocí select a group by ??? Připomínám, že hodnoty společných platů x nebo y neznám a ani se na ně neptám...
Casero
Profil
Fanda
No stačí normálně jen seřadit podle platu a skupiny se utvoří sami, prostě když ty platy budou stejné, bude hned pod sebou, a vyhovuje to i druhé podmínce
Fanda
Profil *
Nevím, jestli jsem dobře zformuloval svojí otázku...

Např. Karel s Petrem budou brát 10 000 a Jana 15 000. Pokud napíšu:

SELECT zamestnanci FROM firma
ORDER BY plat;

Tak se mi samozřejmě vypýšou Karel s Petrem pod sebou, ale v tom výpisu bude i Jana a tu já vypsat nechci, protože nemá s nikým stejný plat....
Casero
Profil
aha, tak to pak možná by šlo:
SELECT zamestnanci FROM firma where plat in (select plat,count(*) as pocet from firma group by plat having to pocet>1) ORDER BY plat;
ale moc za to neručím
//EDIT tak takto to nebude fungovat, pač tam jsou v poddotazu 2 sloupce, omlouvám se..
Kajman_
Profil *
select zamestnanci, plat from firma where plat in (select plat from firma group by plat having count(*)>1) order by plat, zamestnanci

nebo tak

select group_concat(zamestanci) seznam, plat from firma group by plat having count(*)>1 order by plat

Obě řešení v mysql až od verze 4.1.
Casero
Profil
Tak v tom případě jsme nebyl uplně mimo, chyběl kousek :-D
Toto téma je uzamčeno. Odpověď nelze zaslat.

0