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í
×

včera 11:30 | Komunita

Etherpad (Wikipedie), svobodný online webový textový editor umožnující spolupráci v reálném čase, se stal oficiálním projektem organizace Software Freedom Conservancy (Wikipedie). Vývojáři Etherpadu se tak mohou stejně jako vývojáři dalších projektů soustředit pouze na vývoj softwaru a vše kolem zařídí Software Freedom Conservancy. Spuštěna byla instance Etherpadu pad.sfconservancy.org.

Ladislav Hagara | Komentářů: 2
včera 10:40 | Zajímavý článek

Lukáš Růžička se v článku Workrave ve Fedoře aneb jak si nevytunelovat karpál na MojeFedora.cz věnuje aplikaci Workrave (Wikipedie) na sledování času stráveného na počítači, která může pomoci vyhnout se negativním účinkům práce s počítačem (RSI, CTS), nebo je alespoň výrazně zmírnit.

Ladislav Hagara | Komentářů: 1
včera 10:00 | Komunita

Na Humble Bundle lze získat počítačovou hru Shadow Warrior: Special Edition běžící také v Linuxu zdarma. Speciální akce končí v sobotu v 19:00.

Ladislav Hagara | Komentářů: 2
20.7. 23:11 | Nová verze

Byla vydána verze 2.4.0 analyzátoru síťového provozu Wireshark. Jedná se o první stabilní verzi nové řady 2.4. Podrobný přehled novinek v poznámkách k vydání. V červnu proběhla konference SharkFest’17 US věnovaná Wiresharku. Záznamy přednášek jsou k dispozici na YouTube.

Ladislav Hagara | Komentářů: 0
20.7. 13:11 | Pozvánky

Spolek OpenAlt zve příznivce otevřeného přístupu na 142. brněnský sraz, který proběhne v pátek 21. července od 18:00 hodin ve Sport Centru Srbská (Srbská 4). Od 19:00 je pro zájemce zamluveno hřiště na plážový volejbal.

Ladislav Hagara | Komentářů: 0
20.7. 12:34 | Bezpečnostní upozornění

V GNOME Soubory, původně Nautilus, konkrétně v generování náhledů exe, msi, dll a lnk souborů byla nalezena a opravena bezpečnostní chyba CVE-2017-11421 s názvem Bad Taste. Při otevření složky obsahující tyto soubory může být spuštěn VBScript obsažen v názvech těchto souborů.

Ladislav Hagara | Komentářů: 2
20.7. 11:00 | Bezpečnostní upozornění

Společnost Oracle vydala čtvrtletní bezpečnostní aktualizaci svých softwarových produktů (CPU, Critical Patch Update). Opraveno bylo celkově 308 bezpečnostních chyb. V Oracle Java SE je například opraveno 32 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 28 z nich. V Oracle MySQL je opraveno 30 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 9 z nich.

Ladislav Hagara | Komentářů: 0
20.7. 01:00 | Komunita

Mark Krenz, známý svým twitterovým účtem @climagic (Command Line Magic), kde ukazuje, co vše a jak lze dělat v příkazovém řádku, přednášel včera v Praze. Záznam přednášky je k dispozici na YouTube.

Ladislav Hagara | Komentářů: 1
19.7. 10:00 | Nová verze

Microsoft vydal Skype pro Linux ve verzi 5.4 Beta. Nejnovější Skype pro Linux je postaven na frameworku Electron 1.7.4 a přináší skupinové videohovory.

Ladislav Hagara | Komentářů: 11
19.7. 06:00 | Nová verze

Werner Koch, zakladatel a hlavní vývojář GnuPG, oznámil vydání verze 1.8.0 svobodné kryptografické knihovny Libgcrypt. Jedná se o první stabilní verzi nové řady 1.8. Ta je API i ABI kompatibilní s řadou 1.7. Z novinek vývojáři zdůrazňují podporu kryptografických hašovacích funkcí Blake2 (Wikpedie), šifrovací mód XTS nebo zvýšení výkonu na architektuře ARM.

Ladislav Hagara | Komentářů: 0
Těžíte nějakou kryptoměnu?
 (11%)
 (0%)
 (22%)
 (67%)
Celkem 9 hlasů
 Komentářů: 0
    Rozcestník

    Dotaz: SQL dotaz - 2 tabulky

    20.3.2013 21:37 Petr
    SQL dotaz - 2 tabulky
    Přečteno: 976×
    potřebuji poradit, lze nějak vytvořit takový SQL dotaz? Mám MySQL tabulky TAB1(Rec Long primary key, Typ int) a TAB2(Rec Long, Krok varchar(5), Datum date) a potřebuji vypsat Rec z TAB1, kde Typ = např. 1 a v TAB2 je s tímto Rec Krok 'KrokA' a zároveň není žádný Krok 'KrokB' s datem větším než u 'KrokA'. Snad je to srozumitelné. Děkuji za pomoc.

    Odpovědi

    20.3.2013 22:41 kuka
    Rozbalit Rozbalit vše Re: SQL dotaz - 2 tabulky
    Spojeni TAB1 s TAB2 s podminkou na KrokA by melo byt trivialni, nasledne ... and not exists (dotaz na KrokB podle kriterii) a podle moznosti duplicity KrokA pak pripadne jeste distinct.
    20.3.2013 23:32 Petr
    Rozbalit Rozbalit vše Re: SQL dotaz - 2 tabulky
    ano, s podmínkou jen na 'KrokA' bych udělal SELECT DISTINCT TAB1.Rec FROM TAB1,TAB2 WHERE TAB1.Rec=TAB2.Rec AND Krok = 'KrokA'; Ale jak tam dodat podmínku na nepřitomnost 'KrokB' a ještě jen s datem větším než u toho nalezeného 'KrokA' (A to ještě teoreticky by pro jeden Rec mohlo záznamů kde Krok = 'KrokA' být i více a v tom případě by mě zajímal ten poslední (s nejvyšším datem) a testovat nepřítomnost 'KrokB' po tomto datu), to nevím ...
    21.3.2013 08:26 j
    Rozbalit Rozbalit vše Re: SQL dotaz - 2 tabulky
    na prasaka (nezarucuju syntax):
    
    select * (
    
    select * from tab1
     join (select rec, max(datum) from tab2 where krok = "kroka") as s1
        on tab1.rec = s2.rec
     join (select rec, max(datum) from tab2 where krok = "krokb") as s2
        on tab1.rec = s2.rec
    )
    
    where s1.datum > s2.datum
    
    
    21.3.2013 08:30 j
    Rozbalit Rozbalit vše Re: SQL dotaz - 2 tabulky
    a jasne, uz tam vidim min jeden bug ... prvni join ma byt na s1 samo ...
    21.3.2013 09:18 kuka
    Rozbalit Rozbalit vše Re: SQL dotaz - 2 tabulky
    No prida se tam and not exists (select vybirajici KrokB s vyssim datumem). Jestli chces maximalni datum, tak nakonec neudelas distinct, ale group by. Pokud tyto konstrukce neznas (exists, group by), tak si je nekde dohledej, to jsou azklady SQL, bez kterych se daleko nedostanes. Vysledny dotaz bude de facto ten tvuj slovni pozadavek zapsany "anglicky".
    21.3.2013 14:34 Petr
    Rozbalit Rozbalit vše Re: SQL dotaz - 2 tabulky
    Základy SQL znám, ale v tomto případě prostě nevím. Mohl byste mi prosím napsat celý SQL dotaz?
    21.3.2013 15:50 kuka
    Rozbalit Rozbalit vše Re: SQL dotaz - 2 tabulky
    Tak treba
    select t1.rec, max(krok_a.datum)
    from t1, t2 krok_a
    where t1.rec = krok_a.rec
      and krok_a.krok = 'KrokA'
      and not exists( select 0 from t2 krok_b
                        where krok_b.rec = t1.rec
                          and krok_b.krok = 'KrokB'
                          and krok_b.datum > krok_a.datum)
    group by t1.rec
    
    konkretne toto lze udelat jednoduchym group by jen nad tabulkou t2, coz doporucuju jako cviceni.
    21.3.2013 08:12 Tomáš
    Rozbalit Rozbalit vše Re: SQL dotaz - 2 tabulky

    Asi tak nějak (čistě syntaktický přepis Vašeho zadání):

    select t1.Rec
    from TAB1 as t1
    join TAB2 as t2 
      on t1.Rec=t2.Rec and t.Krok='KrokA' and t1.Typ=1
    left join ( 
      select Rec,min(Datum) as dt
      from TAB2
      where Krok='KrokB'
      group by Rec
    ) as t3
     on t2.Rec=t3.Rec and t2.Datum < t3.dt 
    where t3.Rec is null  
    

    Kdyby jste uvedl co je v TAB2 (primárním) klíčem, tak to možná šlo ještě jednodušeji ( jedna agregace plus jeden join ).

    21.3.2013 10:35 Petr
    Rozbalit Rozbalit vše Re: SQL dotaz - 2 tabulky
    Děkuji, tohle vypadá nadějně, ale potřebuji z TAB2 najít poslední (s nejvyšším datem) záznam, kde Krok = 'KrokA' a pak už po něm není žádný záznam 'KrokB'
    21.3.2013 21:19 Tomáš
    Rozbalit Rozbalit vše Re: SQL dotaz - 2 tabulky

    Zase jen syntaktický přepis (bez jakékoliv znalosti skutečného problému)

    select
      Rec
      ,max(case when Krok='KrokA' then Date else null end ) -- poslední datum pro KrokA
    from TAB2
    group by Rec
    having  
      max( case when Krok='KrokA' then Date else null end )  -- nejvyssi datum pro KrokA ( = poslední)
      > -- je větší než
      max( case when Krok='KrokB' then Date else null end )  -- nejvyšší datum pro KrokB
    
    21.3.2013 21:33 Tomáš
    Rozbalit Rozbalit vše Re: SQL dotaz - 2 tabulky

    Ještě jsem zapoměl na dva okrajové případy, kdy jeden z kroků není k dispozici

    select
      Rec
      ,max(case when Krok='KrokA' then Date else null end ) -- poslední datum pro KrokA
    from TAB2
    group by Rec
    having
      max( case when Krok='KrokA' then Date else null end ) is not null -- existuje krokA
     and -- a zároveň
      (
         max( case when Krok='KrokA' then Date else null end )  -- nejvyssi datum pro KrokA ( = poslední)
         > -- je větší než
         max( case when Krok='KrokB' then Date else null end )  -- nejvyšší datum pro KrokB
      or -- nebo se krokB nedohledá
         max( case when Krok='KrokB' then Date else null end ) is NULL 
     
      )
    

    Založit nové vláknoNahoru

    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.