Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Je možné zostaviť MySQL

Je možné zostaviť takúto MySQL tabuľku?

KRAJINA - FARBA

1. Poľsko - červená - biela
2. Slovensko - biela - modrá - červená
3. Česko - biela - modrá - červená
4. India - modrá - biela - zelená - oranžová
5. Seychely - modrá - žltá - červená - biela - zelená
6. Vatikán - biela - žltá
7. Líbya - zelená
8. Fínsko - biela - modrá

Předmět Autor Datum
no mas prakticky dve moznosti: 1. (zly sposob) jedna tabulka s dvomi poliami (NazovKrajiny, Farba).…
wam_Spider007 03.02.2014 00:21
wam_Spider007
Takže 1. NazovKrajiny - Farba1, Farba2, Farba3, Farba4... a 2. NazovKrajiny --------------- Naz…
Nighthorse 03.02.2014 00:25
Nighthorse
ano
wam_Spider007 03.02.2014 00:26
wam_Spider007
Následne po zadaní vstupu napr: žltá, biela, modrá, vypísať výstup: Vatikán - 100%, Fínsko - 100%, S…
Nighthorse 03.02.2014 00:21
Nighthorse
priklad vypoctu pre jednu krajinu a tebou zvolene farby. ak predpokladame, ze to mas riesene podla m…
wam_Spider007 03.02.2014 00:29
wam_Spider007
Díky moc :)
Nighthorse 03.02.2014 01:11
Nighthorse
Tabulku se zememi a barvami neprovazuj přes jméno země, ale přidej si tam sloupec kód a do něj dej m… poslední
Jan Fiala 03.02.2014 07:49
Jan Fiala

no mas prakticky dve moznosti:
1. (zly sposob) jedna tabulka s dvomi poliami (NazovKrajiny, Farba). Pricom do pola Farba zadas vsetky farby oddelene ciarkou/pomlckou/medzerou/whatever

2. (dobry sposob) dve tabulky. Prva s jednym stlpcom NazovKrajiny a druha so stlpcami NazovKrajiny a Farba.
Do druhej tabulky budes pre kazdu krajinu davat tolko riadkov, kolko ma farieb.

priklad vypoctu pre jednu krajinu a tebou zvolene farby. ak predpokladame, ze to mas riesene podla mojho popisu c 2.

Tabulka Krajiny je prva tabulka, tabulka Farby je druha tabulka

SELECT (SELECT COUNT(*) FROM Farby WHERE NazovKrajiny = 'Vatikan' AND Farba IN ('žltá', 'biela, 'modrá')) / (SELECT COUNT(*) FROM Farby WHERE NazovKrajiny = 'Vatikan') * 100

pripadne potom pre vsetky krajiny:

SELECT
(SELECT COUNT(*) FROM Farby WHERE Farby.NazovKrajiny = Krajiny.NazovKrajiny AND Farby.Farba IN ('žltá', 'biela, 'modrá')) /
(SELECT COUNT(*) FROM Farby WHERE Farby.NazovKrajiny = Krajiny.NazovKrajiny)
* 100
FROM Krajiny

Tabulku se zememi a barvami neprovazuj přes jméno země, ale přidej si tam sloupec kód a do něj dej mezinárodní kód země. Přes ten pak provaž barvy.
Mezinárodní kód se měnit nebude, jméno země se změnit může, nehledě na to, že provazovat tabulky přes 50 znakové řetězce není moc optimální.

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