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

#1 Sans
24/01/2006 - 00:49 | Informe spam
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,
Respuesta Responder a este mensaje
#2 Gustavo Larriera [MVP]
24/01/2006 - 01:09 | Informe spam
Transcribirlo a qué dialecto?

Gustavo Larriera
Uruguay LatAm
Blog: http://sqljunkies.com/weblog/gux/
MVP profile: http://aspnet2.com/mvp.ashx?GustavoLarriera
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.

"Sans" wrote in message
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,



Respuesta Responder a este mensaje
#3 Isaias
24/01/2006 - 01:15 | Informe spam
Sans

El instruccion WITH, no es nueva en SQL Server 2005, pero si se utiliza en
consultas de tipo CTE (Common table expression), esto si es nuevo en T-SQL
2005

El WITH en conjunto con SELECT, crea una vista temporal, para ver la
instruccion WITH en accion, revisa estas 2 consultas:

SELECT *
FROM Production.Product as p
INNER JOIN (SELECT ProductModelID, avg(ListPrice) as AvgPrice FROM
Production.Product GROUP BY ProductModelID) as c ON p.ProductModelID =
c.ProductModelID AND p.ListPrice > C.AvgPrice

WITH c (ProductModelID, AvgPrice)
AS (SELECT ProductModelID, Avg(ListPrices) as AvgPrice
FROM Production.Product GROUP BY ProductModelID)
SELECT *
FROM Production.Product AS p
INNER JOIN c
ON p.ProductModelID = c.ProductModelID AND p.ListPrice > c.AvgPrice

Ambas consultas, obtienen la misma información

Saludos
IIslas


"Sans" escribió:

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,


Respuesta Responder a este mensaje
#4 Sans
24/01/2006 - 01:35 | Informe spam
Al que usa sql 2000...

Saludos

Gustavo Larriera [MVP] ha escrito:

Transcribirlo a qué dialecto?

Gustavo Larriera
Uruguay LatAm
Blog: http://sqljunkies.com/weblog/gux/
MVP profile: http://aspnet2.com/mvp.ashx?GustavoLarriera
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.

"Sans" wrote in message
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,
>
Respuesta Responder a este mensaje
#5 Ele
24/01/2006 - 16:28 | Informe spam
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,

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida