sql dotaz

Sekcia: Programovanie 09.09.2013 | 20:24
d__   Návštevník
Ahojte,

neviete spojit nasledujuce tabulky tabulka akcie:
------------------------------------
| id_akcia    |   kde    | ....    |
------------------------------------
|     1       |  vychod  | ....    |
|-----------------------------------
|     2       |  zapad   | ....    |
|-----------------------------------
|     3       |  stred   | ....    |
|-----------------------------------
|     4       |   juh    | ....    |
|-----------------------------------
tabulka zaplatene_vstupne:
-----------------------------------------
| id_poplatok | kto | akcia | suma .... |
-----------------------------------------
|     1       |  1  |   1    | ....     |
|----------------------------------------
|     2       |  2  |   1    | ....     |
|----------------------------------------
|     3       |  1  |   2    | ....     |
|----------------------------------------
|                  ...                  |
-----------------------------------------
aby bolo vysledkom toto, nejako to nvm spojit, resp. ako naraz vypis.

Viem, ze dotaz v dotaze, ale skusal a netusim ako. Cez join to nejde. osoba 1 zaplati kolko krat za akciu
-----------------------------------------------
|  id_akcia |    kde   | count(*) as "pocet"  |
-----------------------------------------------
|     1     |  vychod  | ....                 |
|----------------------------------------------
|     2     |  zapad   | ....                 |
|----------------------------------------------
|     3     |  stred   | ....                 |
|----------------------------------------------
|     4     |   juh    | ....                 |
|----------------------------------------------
Dakujem, nvm to zrealizovat.

Dakujem za pomoc
    • RE: sql dotaz 09.09.2013 | 20:28
      Avatar d_   Návštevník
      oprava
      -----------------------------------------------
      |  id_akcia |    kde   | count(*) as "pocet"  |
      -----------------------------------------------
      |     1     |  vychod  |           2          |
      |----------------------------------------------
      |     2     |  zapad   |           1          |
      |----------------------------------------------
      |     3     |  stred   |           0          |
      |----------------------------------------------
      |     4     |   juh    |           0          |
      |----------------------------------------------
    • RE: sql dotaz 09.09.2013 | 21:54
      Avatar WlaSaTy   Návštevník
      Pokiaľ to stačí bez akcií na ktoré nikto neplatil vstupném tak si naštuduj GROUP BY. A inak, pokiaľ nemáš dobrovoľné vstupné, tak sa má suma za vztupné vzťahovať na definíciu akcie. V prípade rôznych vstupných (VIP, Obyčajné, tombola), tak by to malo mať ešte o jednu tabuľku viac.
      • RE: sql dotaz 09.09.2013 | 21:59
        Avatar d_   Návštevník
        vdaka, praveze potrebujem aj vediet pocet akcii na ktore neplatil vstupne. A nejde hlavne o sumu stupne, lez o pocet .... joj, zle som zadefinoval problem :( ... este raz
        • RE: sql dotaz 09.09.2013 | 22:02
          Avatar d_   Návštevník
          lepsie povedane, pri ratani nvm vyselektovat tie, ktore potrebujem ... tj. pre prvu akciu uzivatela 1 potrebujem z druhej vytriedit len jeho - presnejsie, platit bude iba raz ze prave jeho, lebo ked daval akcie left join zaplatenie, tak mi nevyselektuje priradenia prveho uzivatela. a ak nezaplatil, tak chcem aby zobratilo alebo vratilo NULL.
          • RE: sql dotaz 09.09.2013 | 22:36
            Avatar WlaSaTy   Návštevník
            Síce rovnako nerozumiem výrazu nvm tak ako Tvojmu opisu, ale skús sa najprv nadýchnuť a zamyslieť nad návrhom databázy. Podľa tvojho druhého a upresneného popisu je to ešte nelogickejšie. To si u Teba prenajímajú stánky na burze a Ty chceš dať do reportu len prvý prenajatý stánok a ostatné vyzbierané peniaze za stánky odignorovať?

            Ak požiadavka nedáva zmysel, tak riešenie nemá význam.
            • RE: sql dotaz 09.09.2013 | 22:45
              Avatar d_   Návštevník
              asi zle prirovnanie :D :D :D mam akciu (zabava ...) na ktoru sa mozu ludia prihlasit. mam zoznam ludi, mam zoznam prihlaseni. chcem spravit aby vratil dotaz s nazvom akcie aj nazov uzivatela. problem je, ze akcia ma tri termini, kde si nejaku moze vybrat. dotaz ked sucastne ma vracat, aby vybral z tabulky prihlaseni len daneho uzivatela, ostatne odselektoval a ptm vlozit tento obsah tabulky ku dabulke akcia - aby vypisalo, ci sa prihlasil alebo ne.
              • RE: sql dotaz 10.09.2013 | 09:56
                Avatar WlaSaTy   Návštevník
                Aha, takže cena (suma) má byť v tabuľke akcií, termín akcie má byť v ďalšej tabuľke. A príznak zaplatené má byť v tabuľke zaplatené vstupné keďže nemáš dražbu na vstupenky. Logika, že jeden človek môže zaplatiť (jedno) vstupné iba na jednu akciu je blbosť. Keby sa mne páčila akcia, tak by som tam kľudne išiel aj dva krát.

                Takže by si sa mal zamyslieť nad výberom DB kôli jej funkcionalite, návrhom DB schémy a až potom riešiť tlačové zostavy.

                A v tlačovej zostave z DB obvykle nedostaneš napriamo sumár s nulovými hodnotami, to sa zvyklo riešiť vlastnou procedúrou alebo cez harakiri join ktorý by vyzeral niekoľko krát dlhší ako SQL príkaz na bežnú zostavu ak nepoužiješ hack s uion a výpisom prázdnych stĺpcov.
                • RE: sql dotaz 10.09.2013 | 13:44
                  Avatar d_   Návštevník
                  hm, kapacitne sa da len na jedno :( zle som to navrhol ... toto nevyriesim :(
                  • RE: sql dotaz 10.09.2013 | 19:21
                    Avatar WlaSaTy   Návštevník
                    Tak sprav niečo jednoduchšie. Obsah chladničky a špajze, a k tomu dvojdielnu knihu receptov. Jedna časť s textom a dľžkou prípravy a druhá s surovinami. Z toho potom budeš vedieť čo môžeš hneď uvariť, alebo čo musíš na nejaký recept dokúpiť. Tak sa do toho dostaneš rýchlejšie. Tá druhá časť s dokupovaním môže už byť oddelená od MYSQL a vložená do PHP. Ale, začiatok je to prvé. Zistiť, čo uvaríš z toho čo máš. Na tom pochytíš základy. Pozdravujem súdružku učiteľku.
                    • RE: sql dotaz 10.09.2013 | 22:40
                      Avatar d_   Návštevník
                      skratene na rovinu, podla Teba som lama v sql?
                      • RE: sql dotaz 10.09.2013 | 22:41
                        Avatar d_   Návštevník
                        inac, nakoniec som sa na to musel vykaslat a spravit inac :) :) ... viac dotazov lez ide
                        • RE: sql dotaz 10.09.2013 | 23:45
                          Avatar WlaSaTy   Návštevník
                          Pokiaľ chceš dostať zo zoskupeného súčtového výberu v jednom príkaze viac ako umožňuje SQL, tak áno. A tých pár dotazov sa dalo krásne nahradiť cez jednoduchý union ktorý sa napríklad v Oracle dáaj vytriediť. V MySQL je to už limitované aj v závislosti na použitom engine. V NoSQL by to asi vôbec nešlo bez vytvorenia zostavy v externom jazyku. O akej DB sme sa bavili?

                          ps tá úloha ťa mala nasmerovať k tvojmu riešeniu. Skús porovnať jedno a druhé.
                          • RE: sql dotaz 11.09.2013 | 00:06
                            Avatar d_   Návštevník
                            MySQL/MariaDB (na svojom druhe, na servery je prve) P.S.: to nie je do skoly, ved semester este nezacal :D :D
                            • RE: sql dotaz 11.09.2013 | 12:25
                              Avatar WlaSaTy   Návštevník
                              Programovanie a OSS systémy sa pretláčajú do osnov aj na stredných školách. Závisí aj od orientácie učiteľa keďže výučba dynamicky sa meniacich odvetví má variabilnú časť výučby. A stredné školy už začali.
                              • RE: sql dotaz 11.09.2013 | 18:57
                                Avatar d_   Návštevník
                                ok, tak na strednej ne som :D :D ;) :) uz ne