Jak to resit pomoci SQL ?

Frantisek Darena darena na akela.mendelu.cz
Úterý Březen 11 09:39:58 CET 2003


Tohle by melo fungovat, zkousel jsem na oracle (ta imaginarni tabulka se
jmenuje iin, protoze in je povazovany za ten operator).
F. Darena

SELECT DISTINCT substr(tabulka.rule, 0, length(tabulka.rule)-4) as rule,
	iin.data AS data_in,
	out.data AS data_out

FROM (SELECT substr(rule, 0, length(tabulka.rule)-4) as rule, data
	FROM tabulka
	WHERE rule LIKE '%-->'
     ) iin,
     (SELECT substr(rule, 0, length(tabulka.rule)-4) as rule, data
	FROM tabulka
	WHERE rule LIKE '%<--'
     ) out,
     tabulka
WHERE substr(tabulka.rule, 0, length(tabulka.rule)-4) = iin.rule
     AND substr(tabulka.rule, 0, length(tabulka.rule)-4) = out.rule


On Tue, 11 Mar 2003, Karel Kral wrote:

> Rekneme ze mam tabulku
> (rule je vzdy jmeno + posledni 3 znaky udavaj smer --> in <-- out)
>
> rule                    data
> -------------------------
> Novak -->        1000
> Novak <--        100
> Kral -->            147
> Kral <--            474
> Novotny -->      100
> Novotny <--      400
> atd...
>
> a pozaduji, aby vysledek vypadal takto: (setrideno podle data_in)
>
>                    -->               <--
> rule            data_in        data_out
> ------------------------------------------
> Novak         1000            100
> Kral               147            474
> Novotny         100            400
>
>
> Zatim to resim pomoci programu v C, ale urcite to pujde napsat i v SQL ?
>
> Poradite mi
>
> Dekuji
>
> K.K.
>
>



Další informace o konferenci Test