Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

urge!!! order by

Estas en el tema de urge!!! order by en el foro de SQL Server en Foros del Web. Hola anteriormente habia solicitado ayuda con esto: Tengo una tabla llamada Products en la cual hay una columna que se llama categoryid, entonces lo que ...
  #1 (permalink)  
Antiguo 19/02/2008, 17:06
 
Fecha de Ingreso: febrero-2008
Mensajes: 6
Antigüedad: 16 años, 9 meses
Puntos: 0
urge!!! order by

Hola anteriormente habia solicitado ayuda con esto:

Tengo una tabla llamada Products en la cual hay una columna que se llama categoryid, entonces lo que quiero hacer es desplegar la columna categoryid dos veces en una misma consulta, una ordenada en forma ascendente y otra en forma ascendente, mas o menos asi:

CategoryId------------Categoryid

1------------------------- 3
2------------------------- 2
3------------------------- 1


anteriormente me habian ayudado con este codigo :


------------------------------------------------------------------------------------------
--Tablas que contendrán los resultados. Las columnas
--IDENTITY se usaran para vincular ambos
use Northwind
DECLARE @topDesc TABLE(Id SMALLINT IDENTITY(1,1), CategoryID int)
DECLARE @topAsc TABLE(Id SMALLINT IDENTITY(1,1), CategoryID int)
--Obtener valores ascendentes
INSERT INTO @topAsc(CategoryID)
SELECT TOP 83 CategoryID
FROM products
ORDER BY categoryID ASC
--Obtener valores descendentes
INSERT INTO @topDesc(CategoryID)
SELECT TOP 83 CategoryID
FROM products
ORDER BY categoryID DESC
--Vincular ambos resultados
SELECT a.CategoryID AS CategoryIdAsc, d.CategoryID AS CategoryIdDesc
FROM @topAsc AS a
INNER JOIN @topDesc AS d
ON a.Id = d.Id
---------------------------------------------------------------------------------------------
pero yo habia desarrollado esto:

use Northwind
select a.categoryid, b.categoryid
from products as a, products as b
ORDER BY a.categoryid, b.categoryid DESC
GO

y me da como resultado las dos columnas ordenadas pero el numero de registros me los eleva al cuadrado, entonces ya no tengo 83 registros sino 6889 .

alguien sabe porque???
  #2 (permalink)  
Antiguo 19/02/2008, 17:07
 
Fecha de Ingreso: febrero-2008
Mensajes: 6
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: urge!!! order by

espero que alguien pueda saber porque se me eleva al cuadrado el numero de registros y si alguien sabe como solucionarlo
  #3 (permalink)  
Antiguo 19/02/2008, 17:38
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 18 años
Puntos: 6
Re: urge!!! order by

por que estas mezclando el contenido de las dos tablas sin una condicion de relación, por lo que por cada registro de la tabla A pone todos los registros de la tabla B... si las tablas A y B (que lógicamente son distintas pero fisicamente las mismas) tienen 83 registros, entonces 83 X 83 = 6889


saludos!
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:55.