Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: athor en Mayo 28, 2014, 10:14:38 am
-
Estimados amigos, gusto en saludarlos necesito algo de ayuda, ya que tengo un entremero con un control mshflexgrid al cual le hago una consulta sql donde traigo un grupo de registros los cuales se diferencian netamente por el mes, en este caso son Cliente, Mes y Suma de Total el tema es que la consulta trae los registros sin problema pero el dilema es que cuando arroja los registros en la columna mes me lanza todos los meses en linea hacia abajo y lo que necesito es que arroje por ej:
Cliente MEs Total Mes total Mes Total etc etc
arturo Enero 500 Febrero 700 Marzo 980
actualmente me lo arroja asi
Cliente Vendedor Mes total
Arturo 001 enero 500
pedro 001 febrero 700
etc etc
Algunos de ustedes se les ocurre como mostrar los registros en vertical descriminando por el mes
agradeceria alguna orientacion
desde ya muchas gracias.
atte
Alex
Valparaiso
-
Usando Transpose o Pivot se podría resolver, cuéntanos con que motor trabajas y publica tu codigo. La otra opcion fea seria recorrer los registros para armar la presentación.
Saludos
-
Ocupo el motor SQL SERVER 2008 R2 y como indicas ocupe PIVOT y la funcion TRANSFORM
sentencia SQL de access 2013
'inicio de sentencia
TRANSFORM Sum(venta_cm.netocon) AS Resultado
SELECT clientes_cm.cliente, venta_cm.vencon
FROM venta_cm INNER JOIN clientes_cm ON venta_cm.rutcon = clientes_cm.rut_clie
GROUP BY clientes_cm.cliente, venta_cm.vencon
ORDER BY venta_cm.vencon
PIVOT Format([fechacon],"mmm") In ("Ene", "Feb", "Mar", "Abr", "May",
"Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic");
'fin de sentencia
ahora llevarlo al form del VB6 es el dilema, me arroja error de sintaxis cerca de 'ventas_cm'. me indica...
ahy estoy parado...
-
Correcto, no era transpose sino transform
Es venta_cm o ventas_cm?
-
la tabla en SQL Server se llama venta_cm y clientes_cm son las dos que interactuan.
en access me arroja los resultados super bien, pero al llevar la sentencia al Form del VB6 me arroja el problema al inicio despues del TRANSFORM SUM(tabla.campo) as campo SELECT .....etc etc debe faltar algo
asi tengo la sentencia en VB6
rs = recordset
tablas : clientes_cm , venta_cm
campos: netocon (totales netos), cliente, vencon(vendedor), rut_clie(dni cliente), rutcon(dni cliente), fechacon(fechas de facturacion)
rs.Open "TRANSFORM Sum(venta_cm.netocon) AS Expr1 SELECT clientes_cm.cliente, vencon FROM venta_cm INNER JOIN clientes_cm ON rutcon = clientes_cm.rut_clie GROUP BY clientes_cm.cliente, vencon ORDER BY vencon PIVOT Format([fechacon], 'mm') In ('Ene', 'Feb', 'Mar', 'Abr', 'May','Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic');", Cn, adOpenDynamic, adLockOptimistic
ojalas se pueda arreglar el inconveniente.
saludos y gracias
-
agradezco la ayuda, luego de 7 horas de lees codigos encontre la solucion
rs.Open "SELECT * From(SELECT desarrollo.dbo.clientes_cm.cliente, venta_cm.vencon, SUM(venta_cm.netocon) as Valor, month(venta_cm.fechacon) as MES FROM Desarrollo.dbo.venta_cm INNER JOIN desarrollo.dbo.clientes_cm ON venta_cm.rutcon = desarrollo.dbo.clientes_cm.rut_clie WHERE (((venta_cm.vencon)= '" & Label2.Caption & "')) GROUP BY venta_cm.fechacon, venta_cm.vencon, venta_cm.netocon, desarrollo.dbo.clientes_cm.cliente) as grupo Pivot (SUM(valor) FOR MES IN ( [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12] )) AS pvtMonth", Cn, adOpenDynamic, adLockOptimistic
indicar que el TRANSFORM de access no funciona en SQL server 2008
saludos