Informix - Ayuda con query

 
Vista:

Ayuda con query

Publicado por Rawl (2 intervenciones) el 07/10/2005 22:00:41
Hola, tengo un problema con este query y no se cual es, saben que puede ser?

SELECT a.ciudad, b.ano, a.ano, (b.valor-a.valor) Variacion, (b.valor-a.valor)*100/a.valor Porcentaje
FROM ventas a, ventas b
WHERE a.ano = 2004 AND b.ano = 2005
GROUP BY a.ciudad,b.ano, a.ano,( b.valor-a.valor) Variacion, (b.valor-a.valor)*100/a.valor Porcentaje

VENTAS
0|bogota|alfa|2004|100
0|bogota|exito|2005|50
0|bogota|carulla|2005|20
0|medellin|jose|2004|10
0|medellin|maria|2005|100
0|cali|pedro|2004|50
0|bogota|rep sql|2004|20
0|medellin|rep 4gl|2004|10
0|cali|no grad|2005|100
0|cali|mario|2005|50
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con query

Publicado por Manu (28 intervenciones) el 11/10/2005 08:52:34
Esa select no tiene sentido.
No debes seleccionar nunca en una select 2 veces la misma tabla, porque te va a hacer un producto cartesiano de la tabla y te va a devolver muchisimos mas registros de lo que necesitas.

Yo lo haria a traves de temporales. En una temporal meteria los registros de ventas de 2004 que necesites, en otra los de 2005 y despues las haria el join a las 2 tablas temporales.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con query

Publicado por LUIS O. Rivaldo (126 intervenciones) el 11/10/2005 16:35:32
Totalmente de acuerdo maneja tabla temporales ademas te va agilizar mucho mas el tiempo de respuesta.

Aprovecha Esta Gran Oportunidad Te Invita (RIVALDO)
http://www.lideresubi.com/informate
Recuerda Entrar como DT-RIVALDO-TUNOMBRE-PAIS
a las 15:00pm del pacifico o 5:00pm colombia, mexico, peru
o 00:00:00 de españa. 06:00pm de chile o 7:00pm Argentina
ver http://www.horariomundial.com
http://www.ubifone.clubcaebiz.net/grabaciones.html

www.cyberoficinas.com/rivaldo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con query

Publicado por luciano (9 intervenciones) el 11/10/2005 23:00:56
los mensajes anteriores tienen razon en que uses tablas temporales, pero respondo a tu pregunta.....
prueba remplazando dentro del group by (b.valor-a.valor) Variacion por la posicion en que ocupa dentro del select (4 en tu caso) y (b.valor-a.valor)*100/a.valor Porcentaje por 5.

SELECT a.ciudad, b.ano, a.ano, (b.valor-a.valor) Variacion, (b.valor-a.valor)*100/a.valor Porcentaje
FROM ventas a, ventas b
WHERE a.ano = 2004 AND b.ano = 2005
GROUP BY a.ciudad,b.ano, a.ano,4,5

ojo lo probe y anduvo la consulta pero me da un error que dice que "An attempt was made to divide by zero" (seria algo asi como "se trato de dividir por cero"). Ten en cuenta eso para tus valores.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar