locked
Pomoc s dotazem ....

    Dotaz

  • Dobrý den pomůže mě prosím někdo s triviálním dotazem SQL ...
    Tabulka 1: Jméno Tabulka 2: Jméno, Číslo_Splátky

    Potřebuji Select který mě pro každé jméno z tabulky1 doplní nejzazší nalezené číslo splátky z tabulky2.

    Příklad výstupu :

    Adam,34 (tzn. v Tabulka2 je Adam,1 ...Adam,10 ... Adam,34)
    Josef,16 (tzn. v Tabulka2 je Josef,1 ...Josef,10 ... Josef,16)

    Děkuji

    pátek 28. března 2014 13:13

Odpovědi

  • SELECT Jmeno,Cislo_Splatky

    FROM tabulka2

    WHERE ((Cislo_Splatky = (SELECTMAX(Cislo_Splatky) FROMtabulka2)) AND

    (tabulka1.jmeno = tabulka2.jmeno))

     

    ---------- Ondrej Zilinec - Cievo ----------

    pátek 28. března 2014 13:46

Všechny reakce

  • Nejsem SQLista :) A nevim zda to patri do techto for.

    Dotaz na nejvyssi cislo splatky napr takovouto konstrukci:

    SELECT TOP 1 Cislo_splatky FROM Tabulka2 WHERE (Jmeno= "jmeno") ORDER BY Cislo_splatky DESC

    Ted to jen obalit nejakym WHILE ktery bude udela SELECT na vsechny prvky tabulky 1 a bude je cpat do vyse uvedene konstrukce. 

    Kontrukce while treba zde: http://technet.microsoft.com/en-us/library/ms178642.aspx

    Nejdem SQLista, nechce se mi o tom prilis premyslet :)

    pátek 28. března 2014 13:42
  • SELECT Jmeno,Cislo_Splatky

    FROM tabulka2

    WHERE ((Cislo_Splatky = (SELECTMAX(Cislo_Splatky) FROMtabulka2)) AND

    (tabulka1.jmeno = tabulka2.jmeno))

     

    ---------- Ondrej Zilinec - Cievo ----------

    pátek 28. března 2014 13:46
  • Dobrý den tak si nevím s dalším problémem ....

    Mám vnořený dotaz :

    LEFT OUTER JOIN
                              (SELECT     CisloFA, LEFT(LTRIM(STR(CisloFA)), 6) AS DenikSmlouva, SUM(Celkem) AS CelkemUhrada
                                FROM          dbo.UcDenik
                               GROUP BY CisloFA) Uhrady ON LEFT(LTRIM(STR(Uhrady.CisloFA)), 6) = LTRIM(STR(dbo.Smlouvy.Smlouva))
     

    Ve výstupu vidím něco jako :

    CisloFa          CelkemUhrada DenikSmlouva                        
    10000101              100            101001
    10000102              200            101001
    10000103              600            101001

    Potřebuju Celý výstup nagroupovat za DenikSmlouva ale nejde mě to, když dám do Group BY

     GROUP BY LEFT(LTRIM(STR(CisloFA)), 6)) Uhrady ON LEFT(LTRIM(STR(Uhrady.CsiloFA)), 6) = LTRIM(STR(dbo.Smlouvy.Smlouva))

    objeví se chyba : CisloFA invalid

    Asi budu muset udělat sólo dotaz jestli mě nikdo neporadí ... :-) ... nebo si konečně přečíst nějakou příručku

    Děkuji !!

    čtvrtek 17. dubna 2014 18:39
  • Mate-li novy problem, zalozte nove vlakno a nepridavejte dalsi dotaz k jiz uzavrenemu pripadu.

    Pristup blokuji, abych vam umoznil vytvoreni noveho dotazu.

    M.

    pátek 18. dubna 2014 6:47
    Moderátor