Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Estimada comunidad,
Tengo el siguiente problema. Estoy cargando dos tablas en mi modelo y a partir de ellas necesito crear un nuevo campo calculado en una de las tablas.
Aquí se los explico a partir de tablas
Productos |
---|
Codigo |
Nombre |
Ajuste |
CostoProm |
---|
Codigo |
Costo |
y a partir de del campo Ajuste en la tabla Producto y Costo de la tabla CostoProm, Crear un nuevo campo en la tabla Producto que sea Valorizado = Ajuste * Costo
Producto |
---|
Codigo Producto |
Nombre Producto |
Ajuste |
Valorizado = Ajuste * Costo |
Este es el código que tengo
//--- Carga de Movimientos de Productos
PRODUCTOS:
LOAD
CODIGO,
AJUSTE,
NOMBRE,
FROM
$(PathQvd)EXIPRODUCTO.qvd
(qvd);
//--- Carga de costo promedio de costos promedios
COSTOPROM:
LOAD
CODIGO,
COSTO
FROM
$(PathQvd)COSTOPROM.qvd
(qvd);
Ayuda por favor
Muchas gracias, me funcionó perfecto.
Ahora me queda una sola duda
Que pasa si quiero hacer un Left Join pero en donde más de un campo de las tablas coinciden?
igual funciona???
Producto: Codigo, Mes, Año, Ajuste, Nombre, Sucursal, Usuario
CostoProm: Codigo, Mes, Año, Costo
Finalmente me funcionó, mezcle lo que tu me enseñaste con lo que me enseñó Enrique.
y este fue el script resultante, pero antes quisiera preguntarte algo más que le planteé a Enrique y te pregunto a ti por si es que sabes también.
Que pasa si quiero hacer un Left Join pero en donde más de un campo de las tablas coinciden?
igual funciona???
Por ejemplo con tres campos iguales?:
Producto: Codigo, Mes, Año, Ajuste
CostoProm: Codigo, Mes, Año, Costo
??????
bueno, este es el script que ocupé finalmente
PRODUCTOS:
LOAD
CODIGO,
CORRELATIVO,
USUARIO,
FECHA,
CANTIDAD,
CANTIDADOLD,
AJUSTE,
MOTIVO1,
COSTOLD,
NOMBRE_SUCURSAL,
NOMBRE,
VALOR_COMPRA,
AÑO,
MES,
SEMANA,
DIAS,
DIA,
TRIMESTRE,
SEMESTRE,
OBSERVACION,
SECTOR,
CODSUCURSAL
FROM
$(PathQvd)EXIPRODUCTO.qvd (qvd);
LEFT JOIN (PRODUCTOS)
COSTOPROM:
LOAD
CODIGO,
COSTO
FROM
$(PathQvd)COSTOPROM.qvd (qvd);
PROD_FINAL:
LOAD *, (AJUSTE * COSTO) as VALORIZADO
Resident PRODUCTOS;
DROP TABLE PRODUCTOS;
Hola,
Que bien que te funciono, y sobre tu pregunta cuando 3 campos deben hacer macth te recomendaria crear una llave compuesta algo así como: Codigo & '|' & Mes & '|' & Año as %Costo eso en ambas tablas para que el Left Join se haga por medio del campo %Costo que es la llave compuesta que creamos en ambas tablas.
Saludos.
Genial! gracias Osvaldo por tu buena voluntad para ayudar.
Oye y precisamente en que parte es conveniente hacer eso?
En el QVD supongo?
y algo más, en que parte se coloca la sentencia?
en LOAD? entre la llamada a los demás campos?
Por ejemplo:
PRODUCTOS:
LOAD
CODIGO,
AÑO,
MES,
FECHA,
CORRELATIVO,
USUARIO,
CANTIDAD,
CANTIDADOLD,
AJUSTE,
CODIGO & '|' & MES & '|' & AÑO as %Costo
FROM
$(PathQvd)EXIPRODUCTO.qvd (qvd);
así?
Hola David,
Se coloca en el Script y en el Load de cada tabla, como es una llave se recomienda poner al inicio y se comentan los campos CODIGO, MES y AÑO para evitar llaves sinteticas:
PRODUCTOS:
LOAD
CODIGO & '|' & MES & '|' & AÑO as %Costo,
// CODIGO,
CORRELATIVO,
USUARIO,
FECHA,
CANTIDAD,
CANTIDADOLD,
AJUSTE,
MOTIVO1,
COSTOLD,
NOMBRE_SUCURSAL,
NOMBRE,
VALOR_COMPRA,
// AÑO,
// MES,
SEMANA,
DIAS,
DIA,
TRIMESTRE,
SEMESTRE,
OBSERVACION,
SECTOR,
CODSUCURSAL
FROM
$(PathQvd)EXIPRODUCTO.qvd (qvd);
LEFT JOIN (PRODUCTOS)
COSTOPROM:
LOAD
CODIGO & '|' & MES & '|' & AÑO as %Costo,
// CODIGO,
// MES,
// AÑO,
COSTO
FROM
$(PathQvd)COSTOPROM.qvd (qvd);
PROD_FINAL:
LOAD *, (AJUSTE * COSTO) as VALORIZADO
Resident PRODUCTOS;
DROP TABLE PRODUCTOS;
Saludos.
Hola Enrique,
Pude leer tu asesoría a David y me agradó tu puntual ayuda.
No se si sea posible me puedas ayudar en un problema en qv.
Saludos,
PJ
Hola Paul Jara,
Claro, estaré encantado de poder ayudarte.
Dime en que necesitas ayuda.
Saludos,
Enrique Colomer
Hola Enrique, Gracias por contestar
Ten un problema que me gustaría me orientes:
Tengo una tabla pivotante, en la cual en una de esas columnas obtengo totales (calculados) y al final suma el total de ésta columna.
Columna C
50%
30%
10%
5%
5%
----
100%
Lo que necesito es que en mi columna D me aparezca la suma vertical de esta columna
Columna C Columna D
50% 50%
30% 80%
10% 90%
5% 95%
5% 100%
----
100%
El problema es que necesito presentar esta tabla en un informe en excel mediante Nprinting pero no me permite autosumar la misma columna, entonces por eso necesito hacerlo a travez de QV o de pronto exista otra opción, no se si me puedes ayudar con ese dato.
Saludos cordiales
Te preparé un ejemplo con varias alternativas
Te lo agradezco mucho Enrique, me sirvió de mucho tu ayuda
Utilicé una opción de QV para auto-sumar columnas.
Como dije, soy nuevo en esto, y QV me parece un mundo completamente nuevo pero muy interesante.
Agradezco mucho por tu pronta ayuda y disculpas por la molestia.
Saludos,
PJ.