Autor | Zpráva | ||
---|---|---|---|
Fanda Profil * |
#1 · Zasláno: 1. 12. 2006, 21:48:21
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 |
#2 · Zasláno: 1. 12. 2006, 22:09:21
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 * |
#3 · Zasláno: 1. 12. 2006, 23:17:18
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 |
#4 · Zasláno: 1. 12. 2006, 23:45:17 · Upravil/a: Casero
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 * |
#5 · Zasláno: 3. 12. 2006, 17:02:16
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 |
#6 · Zasláno: 3. 12. 2006, 22:52:04
Tak v tom případě jsme nebyl uplně mimo, chyběl kousek :-D
|
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0