Transcripcion de codigo...

24/01/2006 - 00:26 por Sans | Informe spam
Encontre el siguiente codigo de internet, que se asemeja a un problema
que estoy abordando, el detalle es que me quedo grande la transcripcion
al codigo actual de sql, al parecer es el estardar SQL-1999...
Si alguien sabe como transcribirlo le agradecere cualquier aportacion
al respecto...

Saludos

CREATE TABLE T_JOURNEY
(JNY_FROM_TOWN VARCHAR(32),
JNY_TO_TOWN VARCHAR(32),
JNY_MILES INTEGER)
INSERT INTO T_JOURNEY VALUES ('PARIS', 'NANTES', 385)
INSERT INTO T_JOURNEY VALUES ('PARIS', 'CLERMONT-FERRAND', 420)
INSERT INTO T_JOURNEY VALUES ('PARIS', 'LYON', 470)
INSERT INTO T_JOURNEY VALUES ('CLERMONT-FERRAND', 'MONTPELLIER', 335)
INSERT INTO T_JOURNEY VALUES ('CLERMONT-FERRAND', 'TOULOUSE', 375)
INSERT INTO T_JOURNEY VALUES ('LYON', 'MONTPELLIER', 305)
INSERT INTO T_JOURNEY VALUES ('LYON', 'MARSEILLE', 320)
INSERT INTO T_JOURNEY VALUES ('MONTPELLIER', 'TOULOUSE', 240)
INSERT INTO T_JOURNEY VALUES ('MARSEILLE', 'NICE', 205)


WITH journey (TO_TOWN, STEPS, DISTANCE, WAY)
AS (SELECT DISTINCT JNY_FROM_TOWN, 0, 0, CAST('PARIS' AS VARCHAR(MAX))

FROM T_JOURNEY
WHERE JNY_FROM_TOWN = 'PARIS'
UNION ALL
SELECT JNY_TO_TOWN, departure.STEPS + 1,
departure.DISTANCE + arrival.JNY_MILES,
departure.WAY + ', ' + arrival.JNY_TO_TOWN
FROM T_JOURNEY AS arrival
INNER JOIN journey AS departure
ON departure.TO_TOWN = arrival.JNY_FROM_TOWN)
SELECT * FROM journey WHERE TO_TOWN = 'TOULOUSE'

TO_TOWN STEPS DISTANCE WAY
-
TOULOUSE 3 1015 PARIS, LYON, MONTPELLIER,
TOULOUSE
TOULOUSE 2 795 PARIS, CLERMONT-FERRAND,
TOULOUSE
TOULOUSE 3 995 PARIS, CLERMONT-FERRAND,
MONTPELLIER,

Preguntas similare

Leer las respuestas

#6 Sans
24/01/2006 - 17:22 | Informe spam
Ele...
Te cuento que lo que quiero hacer algo parecido al ejemplo...

Dado un punto A determinar cuales son los caminos posibles para llegar
al punto B, es el algoritmo del camino mas corto, bueno no exactamente
ya que a mi me sirven todas las opciones para llegar al punto B.

En el ejemplo se determina cuales son los caminos posibles para llegar
a TOLOUSE desde PARIS.

PARIS
|

| | |
385 420 470
| | |
NANTES CLERMONT FERRAND LYON
| | |
| | 335 305 | 320
| - --
| | | |
375 | MONTPELLIER MARSEILLE
| | |
- 205
| 240 |
TOULOUSE NICE

espero haberme explicado bien y que no se deforme el diagramita que
postee...
o si lo prefieres puedes checarlo en el siguiente enlace...
http://www.sqlservercentral.com/col...er2005.asp

Saludos

Ele ha escrito:

mejor cuentanos que quieres hacer

"Sans" escribió en el mensaje
news:
> Fe de erratas, el codigo abajo escrito es de sql 2005...como quiera,
> cualquier aportacion en la transcripcion sera bien recibida...
>
> Saludos
>
> Sans ha escrito:
>
> > Encontre el siguiente codigo de internet, que se asemeja a un problema
> > que estoy abordando, el detalle es que me quedo grande la transcripcion
> > al codigo actual de sql, al parecer es el estardar SQL-1999...
> > Si alguien sabe como transcribirlo le agradecere cualquier aportacion
> > al respecto...
> >
> > Saludos
> >
> > CREATE TABLE T_JOURNEY
> > (JNY_FROM_TOWN VARCHAR(32),
> > JNY_TO_TOWN VARCHAR(32),
> > JNY_MILES INTEGER)
> > INSERT INTO T_JOURNEY VALUES ('PARIS', 'NANTES', 385)
> > INSERT INTO T_JOURNEY VALUES ('PARIS', 'CLERMONT-FERRAND', 420)
> > INSERT INTO T_JOURNEY VALUES ('PARIS', 'LYON', 470)
> > INSERT INTO T_JOURNEY VALUES ('CLERMONT-FERRAND', 'MONTPELLIER', 335)
> > INSERT INTO T_JOURNEY VALUES ('CLERMONT-FERRAND', 'TOULOUSE', 375)
> > INSERT INTO T_JOURNEY VALUES ('LYON', 'MONTPELLIER', 305)
> > INSERT INTO T_JOURNEY VALUES ('LYON', 'MARSEILLE', 320)
> > INSERT INTO T_JOURNEY VALUES ('MONTPELLIER', 'TOULOUSE', 240)
> > INSERT INTO T_JOURNEY VALUES ('MARSEILLE', 'NICE', 205)
> >
> >
> > WITH journey (TO_TOWN, STEPS, DISTANCE, WAY)
> > AS (SELECT DISTINCT JNY_FROM_TOWN, 0, 0, CAST('PARIS' AS VARCHAR(MAX))
> >
> > FROM T_JOURNEY
> > WHERE JNY_FROM_TOWN = 'PARIS'
> > UNION ALL
> > SELECT JNY_TO_TOWN, departure.STEPS + 1,
> > departure.DISTANCE + arrival.JNY_MILES,
> > departure.WAY + ', ' + arrival.JNY_TO_TOWN
> > FROM T_JOURNEY AS arrival
> > INNER JOIN journey AS departure
> > ON departure.TO_TOWN = arrival.JNY_FROM_TOWN)
> > SELECT * FROM journey WHERE TO_TOWN = 'TOULOUSE'
> >
> > TO_TOWN STEPS DISTANCE WAY
> > -
> > TOULOUSE 3 1015 PARIS, LYON, MONTPELLIER,
> > TOULOUSE
> > TOULOUSE 2 795 PARIS, CLERMONT-FERRAND,
> > TOULOUSE
> > TOULOUSE 3 995 PARIS, CLERMONT-FERRAND,
> > MONTPELLIER,
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida