abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    16.10. 15:55 | Nová verze

    Memtest86+ (Wikipedie), svobodný nástroj pro kontrolu operační paměti, byl vydán ve verzi 9.00. S podporou architektury AArch64 (ARM64).

    Ladislav Hagara | Komentářů: 0
    16.10. 03:44 | IT novinky

    Společnost Fairphone stojící za stejnojmennými mobilními telefony představila (pdf) bezdrátová špuntová sluchátka Fairbuds 2. Opravitelná, s vyměnitelnými bateriemi a tříletou zárukou. Cena 119 eur.

    Ladislav Hagara | Komentářů: 5
    16.10. 03:33 | Pozvánky

    O víkendu 17. a 18. října lze na brněnském výstavišti navštívit s jednou vstupenkou dvě akce: Maker Faire Brno, festival inovací, kreativity a kutilství, a GameDev Connect, akci určenou pro všechny současné a hlavně budoucí herní vývojáře.

    Ladislav Hagara | Komentářů: 0
    15.10. 20:33 | Nová verze

    Canonical vydal (email) Ubuntu 26.10 Stonking Stingray. Přehled novinek v poznámkách k vydání. Jedná se o průběžné vydání s podporou 9 měsíců, tj. do července 2027.

    Ladislav Hagara | Komentářů: 1
    15.10. 16:44 | IT novinky

    České Radiokomunikace (CRA) ve čtvrtek odstřelily rozhlasový vysílač Liblice B, dosud nejvyšší stavbu v Česku. O demolici dvou 355 metrů vysokých stožárů rozhodly z důvodu jejich nevyužívání, už v úterý přitom zhasly a demontovaly jejich osvětlení.

    Ladislav Hagara | Komentářů: 27
    15.10. 02:44 | IT novinky

    Microsoft Defender nově podporuje linuxové desktopy.

    Ladislav Hagara | Komentářů: 17
    14.10. 21:00 | Komunita

    Oficiální Epic Games Launcher je v nové preview verzi poprvé dostupný i pro Linux (FAQ). Pracuje se na novém Easy Anti-Cheatu pro Linux (EAC Linux v2) a podpoře hry Fortnite na Linuxu.

    Ladislav Hagara | Komentářů: 6
    14.10. 13:44 | Nová verze

    Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.8. Novinky zahrnují lepší podporu vzdálené plochy, sdílení a nahrávání obrazovky a řadu drobností napříč uživatelským rozhraním (úplný seznam změn, shrnutí ve wiki).

    ʚĭɞ 🍉 | Komentářů: 36
    14.10. 10:55 | IT novinky

    Apple představil 7palcový displej Apple HomeView s podporou Apple Intelligence a Siri AI pro ovládání chytré domácnosti, novou řadu vybavení chytré domácnosti Apple Home Collection, další generaci HomePodu mini a novou Apple TV 4K. Apple HomeView není v Evropské unii v prodeji, jelikož umělá inteligence Siri v rámci systému iOS v EU momentálně není k dispozici. Apple spolupracuje s EU a snaží se najít cestu, jak situaci vyřešit.

    Ladislav Hagara | Komentářů: 7
    14.10. 03:55 | Komunita

    KDE slaví 30 let. Přesně před 30 lety, 14. října 1996, poslal Matthias Ettrich do diskusní skupiny comp.os.linux.misc zprávu, která započala historii projektu KDE. Důležité milníky jsou zobrazeny na časové ose.

    Ladislav Hagara | Komentářů: 3
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2859 hlasů
     Komentářů: 32, poslední 11.10. 17:02
    Rozcestník

    Dotaz: sql problem

    b42 avatar 11.12.2006 21:40 b42 | skóre: 12 | Ostrava/Brno
    sql problem
    Přečteno: 380×
    zdravim,

    mam 3 tabulky, obsahujici nasledujici kolonky:
    users - user_id
    payment - user_id, payment_id, amount
    demand - user_id, demand_id, amount
    
    chtel bych vypsat u uzivatele soucet jeho pohledavek a jeho plateb, muj dotaz vypada takto a vypisuje hodnoty, podle kterych to vypada ze tam nekde vznika nejaky kartezsky soucin:
    SELECT u.user_id, SUM(dm.amount), SUM(p.amount)
    FROM users u
    LEFT JOIN payment p ON p.user_id = u.user_id
    LEFT JOIN demand dm ON dm.user_id = u.user_id
    WHERE dm.cancel_date IS NULL AND p.cancel_date IS NULL AND u.user_id = 1205
    GROUP BY u.user_id
    
    +---------+----------------+---------------+
    | user_id | SUM(dm.amount) | SUM(p.amount) |
    +---------+----------------+---------------+
    |    1205 |        2000.00 |       1084.00 | 
    +---------+----------------+---------------+
    
    (spravne to ma byt 1000 a 542 - v demand jsou pro tohoto uzivatele castky 500 a 500, v payment 500 a 42)

    kdyz vyhazu tu agregaci vypada to asi takhle:
    SELECT u.user_id, dm.amount, p.amount, dm.demand_id, p.payment_id
    FROM users u
    LEFT JOIN payment p ON p.user_id = u.user_id
    LEFT JOIN demand dm ON dm.user_id = u.user_id
    WHERE dm.cancel_date IS NULL AND p.cancel_date IS NULL AND u.user_id = 1205
    
    +---------+--------+--------+-----------+------------+
    | user_id | amount | amount | demand_id | payment_id |
    +---------+--------+--------+-----------+------------+
    |    1205 | 500.00 |  42.00 |         4 |          7 | 
    |    1205 | 500.00 |  42.00 |        11 |          7 | 
    |    1205 | 500.00 | 500.00 |         4 |         11 | 
    |    1205 | 500.00 | 500.00 |        11 |         11 | 
    +---------+--------+--------+-----------+------------+
    
    otazka zni: jak by mel vypadat dotaz, ktery vypise to co chci? (pro vice uzivatelu, ta podminka user_id = 1205 je tam jen pro demonstraci)

    Odpovědi

    11.12.2006 22:44 jekub | skóre: 9 | blog: noblog
    Rozbalit Rozbalit vše Re: sql problem
    otazka zni: jak by mel vypadat dotaz, ktery vypise to co chci? (pro vice uzivatelu, ta podminka user_id = 1205 je tam jen pro demonstraci)

    Já bych si raděj položil otázku, proč dostávám výsledek, jaký dostávám. Třeba proto, že: spojením users a demand dostanu
    USER_ID                AMOUNT                 
    ---------------------- ---------------------- 
    1205                   500                    
    1205                   500                    
    
    spojením výsledné tabulky s payment relací jen přes user_id dostanu kartézský součín (2 x 2 = 4 řádky)
    USER_ID                AMOUNT                 AMOUNT                 
    ---------------------- ---------------------- ---------------------- 
    1205                   500                    42                     
    1205                   500                    500                    
    1205                   500                    42                     
    1205                   500                    500                    
    

    no a agregace pak dá výsledky 2000 a 1084. Těžko očekávat očekávané výsledky spojení tabulek (payment a demand), které nejsou v relaci.

    Možné řešení
    select user_id,sum(amount1),sum(amount2) from(
    SELECT u.user_id, dm.amount amount1, 0 amount2
    FROM users u
    LEFT JOIN demand dm ON dm.user_id = u.user_id
    union
    SELECT u.user_id, 0, p.amount
    FROM users u
    LEFT JOIN payment p ON p.user_id = u.user_id
    )
    GROUP BY user_id
    
    b42 avatar 11.12.2006 22:57 b42 | skóre: 12 | Ostrava/Brno
    Rozbalit Rozbalit vše Re: sql problem
    Diky za odpoved.

    Proc dostavam vysledek jaky dostavam jsem celkem tusil, nicmene nevedel jsem co s tim. Vypadalo to jako trivialni ucebnicovy priklad, takze jsem myslel ze to pujde vyresit nejak trivialne ... jakozto uzivatel mysql se subselecty neumim pracovat:) (no dobre, neumim prakticky nic a mysql za to nemuze)

    Jinak asi by tam melo byt UNION ALL (v mysql, nevim jestli i jinde) pro pripad, ze se vyskytnou dve stejne castky.
    11.12.2006 23:07 jekub | skóre: 9 | blog: noblog
    Rozbalit Rozbalit vše Re: sql problem
    Union all, přesně tak. Ještě jsem kvůli tomu zapínal počítač, abych to napravil :-)

    Založit nové vlákno • Nahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.