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 Databases