Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

VB inner join Rompimientos - una ayuda pls

Estas en el tema de VB inner join Rompimientos - una ayuda pls en el foro de Visual Basic clásico en Foros del Web. Hola: Estoy en la tarea de realizar en vb un prog de analisis presupuestal. Despues de ires y venires ya estoy en un momento casi ...
  #1 (permalink)  
Antiguo 02/04/2009, 15:10
 
Fecha de Ingreso: marzo-2009
Mensajes: 23
Antigüedad: 15 años, 1 mes
Puntos: 0
VB inner join Rompimientos - una ayuda pls

Hola:

Estoy en la tarea de realizar en vb un prog de analisis presupuestal. Despues de ires y venires ya estoy en un momento casi casi final.

El programa como tal, define modelos presupuestales, por compañia, Area de produccion, centros de costo, conceptos, mes, etc etc.

Pero, necesito generar unos totales de rompimiento por concepto, centro de costo, area de produccion.

La sentencia es:

SELECT PPTO_EJECUCION.Id_Ejecucion,
PPTO_INFORME_CABECERA.Id_Modelo,
PPTO_ENTRADA.Compania,
PPTO_ENTRADA.Grupo,
PPTO_ENTRADA.Centro_Costo,
PPTO_ENTRADA.Concepto,
PPTO_ENTRADA.Valor,
MONTH(PPTO_ENTRADA.Mes) AS Mes,
sum(PPTO_ENTRADA.Valor),
INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME AS Columna,
PPTO_INFORME_DETALLE.Signo
FROM INFORMATION_SCHEMA.COLUMNS
INNER JOIN PPTO_INFORME_DETALLE
ON SUBSTRING(INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME, 6,LEN(INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME)) = PPTO_INFORME_DETALLE.Columna
INNER JOIN PPTO_INFORME_CABECERA
ON PPTO_INFORME_DETALLE.FK_Modelo = PPTO_INFORME_CABECERA.Id_Modelo
INNER JOIN PPTO_ENTRADA
ON PPTO_INFORME_DETALLE.FK_Proceso = PPTO_ENTRADA.Proceso
INNER JOIN PPTO_EJECUCION
ON PPTO_INFORME_DETALLE.FK_Modelo = PPTO_EJECUCION.FK_Modelo
INNER JOIN PROCESO
ON PPTO_ENTRADA.Proceso = PROCESO.ID_PROCESO
WHERE (INFORMATION_SCHEMA.COLUMNS.TABLE_NAME = 'PPTO_MOVIMIENTO')
AND (SUBSTRING(INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME, 1,5) = 'Campo') AND (PPTO_EJECUCION.Id_Ejecucion = '1')
AND (PPTO_INFORME_CABECERA.Id_Modelo = '1')
Group by PPTO_EJECUCION.Id_Ejecucion,PPTO_INFORME_CABECERA. Id_Modelo,
PPTO_ENTRADA.Compania,
PPTO_ENTRADA.Grupo,
PPTO_ENTRADA.Centro_Costo,
PPTO_ENTRADA.Concepto,
PPTO_ENTRADA.Valor,
PPTO_ENTRADA.Mes,
INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME,
PPTO_INFORME_DETALLE.Signo
ORDER BY PPTO_ENTRADA.Proceso, PPTO_ENTRADA.Mes

Por favor una ayuda con los rompimientos ya que yo me estoy rompiendo la cabeza definiendolos.... gracias
  #2 (permalink)  
Antiguo 04/04/2009, 22:06
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: VB inner join Rompimientos - una ayuda pls

Tio todavia no he necesitado una consulta tan extensa pero quizas el problema este aqui, te falto declara un AS en sum(PPTO_ENTRADA.Valor)

SELECT PPTO_EJECUCION.Id_Ejecucion,
PPTO_INFORME_CABECERA.Id_Modelo,
PPTO_ENTRADA.Compania,
PPTO_ENTRADA.Grupo,
PPTO_ENTRADA.Centro_Costo,
PPTO_ENTRADA.Concepto,
PPTO_ENTRADA.Valor,
MONTH(PPTO_ENTRADA.Mes) AS Mes,
sum(PPTO_ENTRADA.Valor),
INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME AS Columna,
PPTO_INFORME_DETALLE.Signo

Por otro lado te recomiendo utilizar clausula AS para mencionar a las tablas y se pueda entender un poco mejor y se redusca la consulta
PPTO_EJECUCION AS A
PPTO_INFORME_CABECERA AS B
PPTO_ENTRADA AS C
PPTO_INFORME_DETALLE AS D
PROCESO AS E

Este tipo de campo INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME no lo he utilizado y quizas por ahi esté el error por que no le encuentro ningun error en el formato de la consulta
Código:
SELECT 

A.Id_Ejecucion, 
B.Id_Modelo, 
C.Compania,C.Grupo,C.Centro_Costo,C.Concepto,C.Valor,MONTH(C.Mes) AS Mes,sum(C.Valor),
INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME AS Columna, 
D.Signo 

FROM 
INFORMATION_SCHEMA.COLUMNS 

INNER JOIN 
PPTO_INFORME_DETALLE D ON SUBSTRING(INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME, 6,LEN(INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME))=D.Columna 
INNER JOIN 
PPTO_INFORME_CABECERA B ON D.FK_Modelo=B.Id_Modelo 
INNER JOIN 
PPTO_ENTRADA C ON D.FK_Proceso=C.Proceso 
INNER JOIN 
PPTO_EJECUCION A ON D.FK_Modelo=A.FK_Modelo 
INNER JOIN 
PROCESO P ON C.Proceso=E.ID_PROCESO 

WHERE 
(INFORMATION_SCHEMA.COLUMNS.TABLE_NAME = 'PPTO_MOVIMIENTO') 
AND (SUBSTRING(INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME, 1,5) = 'Campo') AND (A.Id_Ejecucion = '1') 
AND (B.Id_Modelo = '1') 

GROUP BY 
A.Id_Ejecucion,B.Id_Modelo, 
c.Compania,c.Grupo,c.Centro_Costo,c.Concepto,c.Valor,c.Mes,
INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME,D.Signo 
ORDER BY 
C.Proceso,C.Mes
  #3 (permalink)  
Antiguo 28/04/2009, 14:34
 
Fecha de Ingreso: marzo-2009
Mensajes: 23
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: VB inner join Rompimientos - una ayuda pls

Señores:

Gracias, tomadas en cuenta las sugerencias es muchisimo mas facil de entender pero no se ha llegado al objetivo....

gracias
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 06:00.