Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Jak na vnořený Select v MySQL

Dobrý den,
poradil by mi prosím někdo zkušenější jak vyřešit "učísnutí" dat v tabulce?
Mám v MySQL datovou tabulku, která obsahuje 3 sloupce (1=hodnota, 2=velikost, 3=symbol pro zgrupování)
dotazem :

SELECT Hodnota, SUM(Velikost)
FROM tabulka
WHERE Symbol = "1"
GROUP BY Hodnota
ORDER BY Hodnota DESC;

získám sice to co potřebuji ale jen pro symbol "1", háček je v tom, že v primární tabulce těchto symbolů je víc, ("2", "3",...) a já bych je potřeboval takto projít všechny a tyto dílčí výsledky nakonec sloučil do jedné výstupní tabulky kde klíčem spojení mezi nimi bude Hodnota.
Doufám že popis problému je alespoň trochu srozumitelný :-)

Výstupní tabulka by měla tedy vypadat asi takto:
|Hodnota|SumaVelikosti za hodnotu a symbol "1"|SumaVelikosti za hodnotu a symbol "2"|.. atd..

Budu moc rád za jakoukoliv radu vedoucí k cíli.
ensin

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Předpokládám, že množina hodnot symbolů (nebo aspoň jejich počet) je ti dopředu známa (znám). Asi by… nový
hynajs 03.02.2010 18:58
hynajs
jo, dá se říct, že množina hodnot symbolů, respektive jejich počet je znám. Dá se zjistit přes COUNT… nový
ensin 03.02.2010 20:02
ensin
Napíš si všetky všetky SQL pre každú hodnotu. Potom tie SQL daj do zátvorky a medzi tie príkazy napí… poslední
msx. 03.02.2010 20:07
msx.

Předpokládám, že množina hodnot symbolů (nebo aspoň jejich počet) je ti dopředu známa (znám).
Asi by bylo nejlepší, kdyby sis založil novou tabulku stejné struktury jako je požadovaná výstupní.
A naplnil ji příkazy INSERT ... SELECT a UPDATE ... SELECT, kde SELECT je dotaz syntaxe uvedené nahoře.
Potíž může nastat, když by nějaká hodnota např. měla symbol "2" a neměla "1" , jinými slovy když by se pro nějakou hodnotu muselo rozhodovat mezi INSERT a UPDATE.
To by měla vyřešit jednoduchá stored procedure.
Já už jsem ale dlouho žádnou nepsal, obdobné věci dělám přes PHP.

jo, dá se říct, že množina hodnot symbolů, respektive jejich počet je znám.
Dá se zjistit přes COUNT. To s tím založit si výstupní tabulku v požadovaném formátu zní dobře.
To že nějaká hodnota má symbol "2" a nemá "1" je velmi pravděpodobné že nastane.
Po pravdě, dokázal bych si tu výstupní tabulku vygenerovat v .NETu, ale protože jsem si teď
celkem zamiloval databáze, konkrétně MySQL a nejsem ještě v tom moc "opráskanej" představoval jsem si
že SQLko dokáže zchroupnout tu tabulku přes "nějaký" např. vnořený SELECT (což by mělo asi být i rychlejší a efektivnější než to kousat řádek po řádku v .NETu) a do .NETu si potom už
nechám poslat jen výsledek.
Potíž je, že zatím nevím (respektive nemám představu) jak to uchopit ze strany SQL. Vzorek té výstupní tabulky mám v Excelu. Nechci tě nějak zatěžovat, každý má toho svého většinou až nad hlavu, ale pokud bys mi s tím mohl nějak pomoct, co říct, bylo by to prostě moc fajn.
Je na tebe např. nějaký mejl kam bych ti to mohl event. přeposlat?
Můj je ensinzavináčemailcz.
Předem dík za případnou ochotu.

Zpět do poradny Odpovědět na původní otázku Nahoru