SoloCodigo

Bases de Datos => SQL Server => Mensaje iniciado por: malavida en Martes 24 de Octubre de 2006, 13:52

Título: Como Obtener Combinaciones Posibles Entre2 Campos?
Publicado por: malavida en Martes 24 de Octubre de 2006, 13:52
Hola, tengo una dudita...
Como obtengo todas las combinaciones posibles entre 2 campos en la misma tabla


Saludos
Título: Re: Como Obtener Combinaciones Posibles Entre2 Campos?
Publicado por: lencho en Martes 24 de Octubre de 2006, 15:16
Citar
Hola, tengo una dudita...
Como obtengo todas las combinaciones posibles entre 2 campos en la misma tabla

mmmm, no se entiende muy bien que es lo que quieres.
Título: Re: Como Obtener Combinaciones Posibles Entre2 Campos?
Publicado por: JuanK en Martes 24 de Octubre de 2006, 15:22
Cita de: "malavida"
Hola, tengo una dudita...
Como obtengo todas las combinaciones posibles entre 2 campos en la misma tabla


Saludos
 :whistling:

Tratando de adivinar a lo que te refieres:

<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]SELECT[/color] DISTINCT campo1, campo2
FROM tabla; <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->
Título: Re: Como Obtener Combinaciones Posibles Entre2 Campos?
Publicado por: mateamargo en Martes 24 de Octubre de 2006, 15:22
Con un Cross Join lo podés hacer.

Código: Text
  1.  
  2. Select t1.Campo1, t2.Campo2
  3. From Tabla t1
  4. Cross Join Tabla t2
  5.  
  6.  

o sino de la forma tradicional

Código: Text
  1.  
  2. Select t1.Campo1, t2.Campo2
  3. From Tabla t1, Tabla t2
  4.  
  5.  
Título: Re: Como Obtener Combinaciones Posibles Entre2 Campos?
Publicado por: JuanK en Martes 24 de Octubre de 2006, 15:24
Cita de: "mateamargo"

Con un Cross Join lo podés hacer.
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]Select[/color] t1.Campo1, t2.Campo2
From Tabla t1
Cross Join Tabla t2
 <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->
o sino de la forma tradicional
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]Select[/color] t1.Campo1, t2.Campo2
From Tabla t1, Tabla t2
 <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->
mmm
pero no creo que se refiera a eso pues es claro que dice:
Citar
Como obtengo todas las combinaciones posibles entre 2 campos en la misma tabla
Título: Re: Como Obtener Combinaciones Posibles Entre2 Campos?
Publicado por: malavida en Miércoles 25 de Octubre de 2006, 15:18
Por ej tengo

campo1 | campo2
  a              1
  b              2

y lo que quiero obtener es:  a1, a2, b1, b2

Osea algo parecido a un Producto carteciano


La instruccion "Cross Join" me fije en la ayuda del SQL y esta hai pero no la puedo usar por lo que vi hace lo que yo quiero pero no la puedo usar :/ .... no se porque
Título: Re: Como Obtener Combinaciones Posibles Entre2 Campos?
Publicado por: malavida en Miércoles 25 de Octubre de 2006, 15:20
pongo denuevo los campos porque se ve mal ^^

campo1: a, b
Campo2: 1, 2

saludos
Título: Re: Como Obtener Combinaciones Posibles Entre2 Campos?
Publicado por: mateamargo en Miércoles 25 de Octubre de 2006, 15:29
Cita de: "JuanK"
mmm
pero no creo que se refiera a eso pues es claro que dice:
Citar
Como obtengo todas las combinaciones posibles entre 2 campos en la misma tabla
Si te fijás bien en mi respuesta vas a ver que se usa la misma tabla sólo que le doy dos nombres distintos en el alias (t1 y t2).

malavida, si el Cross Join no lo podés usar, hacélo de la forma tradicional (como te indiqué en mi respuesta), que eso funciona en todos lados.

<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]Select[/color] t1.Campo1, t2.Campo2
From Tabla t1, Tabla t2
<!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->

Con esto asumo que tu tabla se llama Tabla y los campos Campo1 y Campo2.
Título: Re: Como Obtener Combinaciones Posibles Entre2 Campos?
Publicado por: malavida en Miércoles 25 de Octubre de 2006, 17:23
Que nivel este foro! repuesta en tiempo real :D ( es que soy nuevo aca ^^)

Resolvi el problema... lo que pasaba es que no savia eso de los alias hera por eso que no me salia^^

Dejo el ejercicio resuelto por si le sirve a alguien

Saludos y gracias por la onda

-------------------------------------------------------------------------------
--Creo la tabla
USE NegocioAutopartes
CREATE TABLE Partes
   (
   Parte_ID char (2)PRIMARY KEY NOT NULL,
   Nombre varchar (30),
   Color varchar (30),
   Peso int,
   Ciudad varchar (30),
   )

-- Saco las combinaciones posibles
USE NegocioAutopartes

SELECT  c1.Parte_ID,c2.color
FROM Partes c1, Partes c2
ORDER BY c1.Parte_ID