Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hola como va? soy nuevo en estos andares y tenìa una duda, que tal vez me podìan ayudar a contestarla.
Basicamente lo que quiero es tener una tabla en qlikview, con varios campos, pero algunos de ellos dependen de distintos joins en sql.
Es decir, no se como "escribir" de manera que un campo me lo cree cruzando 2 tablas de sql, el otro campo me lo cree usando esas (u otras) 2 tablas de sql, y asì sucesivamente, pero siempre para los mismos articulos (es decir, no puedo hacer inner join una cosa AND otra cosa, porque ahi se me reduce la consulta al and y devolveria 0 o menos resultados)
Yendo a un ejemplo, si tengo articulos (codArt, idTablaCont1, idTablaCont2, idTablaCont3), y la tablaCont (idTablaCont, descripcion)
Donde descripcion es "AZUL" o "SMALL" (nada que ver uno con otro) y idTablaCont es cada uno de los valores de la tabla anterior.
Como puedo traer a todos los articulos de manera tal que en qlikview tenga:
ARTICULO
CodArt
Color (me devuelva el color de ese articulo, cruzando esas 2 tablas)
Talle (me devuelva el talle de ese articulo, cruzando esas 2 tablas)
Como decìa, no puedo hacer un join que sea articulos.idTablaCont1=tablacont.idTablaCont AND articulos.idTablaCont2=tablacont.idTablaCont porque puede hasta NO traer ningun resultado.
Saludos y gracias!
Licha.
La verdad que me estás haciendo pensar de lo lindo!.
Ahí te dejo el ejemplo de cómo lo haría.
Con respecto a leer las tablas directamente de sql, lo que podés hacer es reemplazar de donde lees en excel, leerlas directamente del sql, la verdad que con la sintaxis no te puedo ayudar mucho porque no trabajo en sql.
Saludos.
Hola Licha.
Por lo que entiendo, cargaría primero la tabla artículos y después la tablaCont con los coincidencias con articulos.idTablaCont1 y después otra carga concatenada con la anterior con las coincidencias en articulos.idTablaCont2.
Si puedes sube un excel con algunos datos para poder ayudarte mejor.
Saludos.
Sandro gracias x contestar! Dale ahí va con datos reales. X ejemplo:
Tabla Articulo
CodArt
Id1=1 --- siempre id1 indica talle
Id2=4 --- siempre id4 indica color
Id3=6 --- siempre id6 indica medida
Precio
Puede tener muchos id cada registro
Tabla Contenido
Id=1
Descripcion: XS
..
Otro registro seria
Id=4
Descripcion: AZUL
Entonces yo en qlikview quiero que mi tabla sera
ARTICULO
CodArt
Art-Color: azul
Art-Talle: xs
Y ya que estoy te dejo otra pregunta
Que pasa si tambien quiero un campo descuento?
Teniendo otra tabla llamada descuentos que tiene el CodArt?
(Seria un join con otra tabla pero siempre queriendo ese campo en la misma de qlikview: articulo)
(El tema es basicamente como mezclar joins para nuevos campos en la misma tabla pero sin que esos joins afecten a otros datos que ya traje a esa misma tabla, como seria este caso lo del talle, color, etc)
Muchas gracias si me podes ayudar con la sintaxis lo agradeceria. Los datos
Los traigo de tablas en SQL
Te agradezco!
Licha
Licha.
Armate un archivo excel con datos reales y subilo así es más fácil poder ubicarme en el contexto en el que querés desarrollar la carga de datos y para tener la estructura de las tablas. Gracias.
Saludos.
Ahi te adjunto el excel para descargarlo
http://www.filedropper.com/libro1_2
O ver las tablas aca: http://img541.imageshack.us/img541/5247/tablasexcel.png
Como veras, cada articulo tiene 4 ContID (donde el primero indica tamaño siempre, el segundo indica color siempre, el 4to indica tamaño de pie, y el 5to indica soltura, quedando el 3 vacio)
Luego en la tabla cont, estan esos ids, y que significa cada cosa (descripcion, como veras, todos los colores, etc)
Por ultimo, en la tabla descuento, una tabla en la que si el año del descuento para tal articulo coincide con el año en que fue creado (cruzar articulo con descuento), entonces en el campo descuento de mi tabla de cliqview, agrego ese valor. En caso de que no coincidan los años, pongo 0.
En qlikview entonces quiero lo siguiente: (ME FALTO DESCRIPCION DEL ARTICULO EN LA IMG)
http://img692.imageshack.us/img692/6734/articulosq.png
Basicamente el tema es saber como hago para ir cargando los datos con "varios joins" (ya que para obtener descuento voy a tener que ir a la tabla descuento con articulo, mientras que para obtener color, talle, voy a tener que cruzar articulo con contenido). Siempre quedando todos los articulos obvio.. si no estan en descuento le quedara 0, pero el codarticulo va a tener que estar en qikview, no quiero perder ningun articulo (seria un left)
¿Como seria la sintaxis? Con los LOAD, selects, joins. Varios load? No logro hacerlo y entenderlo. Primero cargar articulos = que como esta en SQL (o excel?)? En fin
Saludos y gracias! En qlikview solo me tiene que quedar en el visor de tablas la de ARticulo... no las otras...
Hola Licha.
Acá te dejo un archivo qlikview que armé con lo que me dejaste. Espero te sirva.
Saludos.
Esta genial! Solo 1 duda, si no quiero que aparezca el campo en Articulo de IdCont1, Idcont2,...etc, solamente las descripciones (Color, talle, etc), como tendria que cambiar? Llamar El Idcont1 color en la tabla articulo y despues..? O se pueden borrar "filas" de 1 tabla? asi borro los IDcont?
Saludos y gracias! Re entendible
Hola.
Lo puedes hacer de la siguiente manera:
1. Puedes borrar de a 1:
DROP Field IdCont1 from Articulos;
2. O varias:
DROP Fields IdCont1,IdCont2,IdCont3 from Articulos;
Saludos.
Buenisimo, eso me quedo perfecto. Te hago la última consulta (doble) y prometo no molestar más jaja, creo que ya sabiendo todo esto me las voy a poder arreglar solo.
1) Tengo ahora que relacionar 3 tablas en vez de 2 como era antes y "agregar" 2 campos a Artículos
Te dejo como intenté hacerlo a tu manera (sin consultas sql) pero en algo estoy pifiando porque me devuelve 0 y 1 las tablas.
Primero te dejo como serían las nuevas tablas que tengo:
http://www.filedropper.com/libro1_3
Y acá lo que quiero:
Fijate que tengo característicasXarticulos, maximo 3 por articulo. (En la tabla Mcaracteristica se ve que es cada ID, no hace falta usarla, porque pregunto en Caractersiticas el ID si es tanto se que es coleccion, etc). La tabla Caracteristicas tiene la descripcion que quiero. Quiero crear en mi tabla articulo de qlikview, 3 campos mas, uno que se llame "Coleccion", otro "Material" y otro "Temporada", dejando ahí la descripción que aparece en la tabla características (linkeando las 2 tablas estas..y la de artículos). ¿Cómo sería?
Así lo estoy haciendo.. pero los 3 campos me devuelven 0 nomás.
//Ya cargue las 3 tablas (aunque una ni se usa, es solo para dtalle Mcaracteristia)
//Traigo todos los articulos en nueva tabla temporal
DIRECTORY;
ArtExtra:
LOAD
Articulo_ID
Resident Articulos;
//Los joineo con CaracXArtic
left join (ArtExtra)
LOAD
KCaract,
Articulo_ID, //Esta bien llamarlo asi? Para que joinee..
Resident CaracXArtic;
//Joineo con caractersiticas, obtengo descripcion
Left join (ArtExtra)
LOAD
KCaractM,
Descripcion,
if(KCaractM=1,Descripcion,0) as Articulo_Temp,
if(KCaractM=2,Descripcion,0) as Articulo_Colec,
if(KCaractM=3,Descripcion,0) as Articulo_Mater
Resident Caracteristicas;
//Adhiero a la tabla de artículos
Left Join(Articulos)
LOAD Articulo_ID,
Articulo_Colec as Articulo_Coleccion,
Articulo_Temp as Articulo_Temporada,
Articulo_MAter as Articulo_Material,
Resident ArtExtra;
//Borro Tablas
DROP Table ArtExtra;
DROP Table Caracteristicas;
DROP Table MCaracteristicas;
Con consulta SQL sería esto: (aunque la pregunta viene en 2 por eso la dejo)
Select C.Descripcion from
Articulos A right join CaracXArtic CxA on
A.id=CxA.KArticulo inner join Caractersiticas C on C.id= CxA.KCaract
where (C.KCaract = 1)... Eso para la coleccion.. con 2, y 3, los otros 2.
En que me estoy equivocando? Como lo corrijo.. Intenté ser lo mas claro posible dejandote las tablas. Mil gracias si me podés ayudar.
2) En caso de querer usar consultas SQL? Es decir, ponele que en vez de cargar los datos desde el excel, los cargabas de SQL. Si después querías (solo veámoslo con las tablas Artículo y Contenido) directamente poner la consulta SQL para el campo "Art-Color:Azul .. y esos", como llamarías a las tablas y a los campos para hacer el join? Por como los renombraste en Qlikview o por como están en SQL? No sería más fácil hacer todo esto, si ya tengo la consulta en SQL que me devuelve lo que quiero antes que andar haciendo joins de residents tables?
Te dejo la consulta de ejemplo, para lo del color azul en sql sería:
select C.Descripcion from Contenido C inner join Articulos A on A.idTablaCont2=C.idTablaCont
¿Como se aplicaria en el ejemplo esa consulta y que lo aplique a todos los articulos digamos en el campo de color?
Bueno muchas gracias.. si entiendo esto ya puedo andar solo.. espero no abusar de tu tiempo y sabiduría jaja
Muchas gracias
Licha!
Licha.
La verdad que me estás haciendo pensar de lo lindo!.
Ahí te dejo el ejemplo de cómo lo haría.
Con respecto a leer las tablas directamente de sql, lo que podés hacer es reemplazar de donde lees en excel, leerlas directamente del sql, la verdad que con la sintaxis no te puedo ayudar mucho porque no trabajo en sql.
Saludos.