SQL - consulta sql (Sumatoria)

 
Vista:

consulta sql (Sumatoria)

Publicado por Jose Quintana (6 intervenciones) el 08/09/2011 21:58:15
yo realizo la siguiente consulta:
select a.codigo AS Cedula ,b.apellidos as Apellidos, b.nombres as Nombres, a.fpago, a.diast as Dias_totales_vacaciones, a.diasd as Dias_disfrutados, a.diasvp as Dias_pagado_vacaciones, a.diasva as Dias_adicionales_vacaciones ,a.diasbp as Dias_Pagado_bono_vacacional,a.diasbva as Dias_bono_vacacional_adicional_Pagados
from nomvac a inner join nomeocf b
on a.codigo = B.codigo and a.tiponomina = b.tiponomina
where a.cia ='zzz' and a.tiponomina='C'

y me da el siguiente resultado:


10969612 HERNANDEZ ANDRES DE JESUS 2000-07-31 8 0 8 0 0 0
10969612 HERNANDEZ ANDRES DE JESUS 2010-05-31 18 16 18 0 0 0
10969612 HERNANDEZ ANDRES DE JESUS 2007-06-30 15 0 15 0 0 0

pero yo necesito que me aparezca de la siguiente manera:

10969612 HERNANDEZ ANDRES DE JESUS 2000-07-31 8 0 8 0 0 0
-------------------------------------------------------------- 2010-05-31 18 16 18 0 0 0
-------------------------------------------------------------- 2007-06-30 15 0 15 0 0 0
--------------------------------------------------------------- --------Total: 41 16 41

* Es decir que no repita la cedula y los nombres y que al final me realice una sumatoria
* si consigue 10 registro de personas me haga las 10 sumatorias de cada uno

Gracias por su tiempo y colaboracion como notaran jamas he comprendido bien las sumatorias

PD.coloque los (----------------) porque no me dejaba dejar espacios en blanco
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

consulta sql (Sumatoria)

Publicado por leonardo_josue (1173 intervenciones) el 09/09/2011 16:27:37
Hola Jose Quintana:

Lo que quieres hacer es casi imposible de lograr con una consulta simple, inclusive utilizando algún Procedimiento la solución tampoco es tan trivial. Aquí lo más recomendable es que hagas la transformación de tus datos con el lenguaje de programación que estés utilizando (java, asp.net, delphi, PHP, etc), ya que estos lenguajes tienen más flexibilidad para la manipulación de la información.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

consulta sql (Sumatoria)

Publicado por Jose Quintana (6 intervenciones) el 09/09/2011 16:33:11
Buenas amigo gracias por tu respuesta.

si tienes toda la razon eso lo pense lo que pasa es que estoy teniendo problemas para conectarme a sql server desde PHPmyadmin. en otra pregunta que tengo abierta hago la siguiente pregunta nose si me puedas ayudar; creo que el problema esta al mostrar el resutado con el odbc_fetch_row($rs,0);

si hago la consulta desde sqlserver me trae el siguiente resultado correcto:

0150 Sueldo Quincenal 3869 0
1330 S.S.O Quincenal 0 112,97
1332 L.R.P.E Quincenal 0 17,86
1334 L.R.P.V.H. Quincenal 0 38,69
1357 I.S.L.R. % 0 63,06

pero al hacerlo desde php me viene vacio. yo creo que es el odbc_fetch_row que como la consulta es una sumatoria no trae nada. si me pueden ayudar se los agradeceria enormemente.

Aqui les dejo el codigo ques estoy usando:

<?php


$dsn = "Driver={SQL Server};Server=winledger;Database=winledger;Integrated Security=SSPI;Persist Security Info=False;";

$conn = odbc_connect( $dsn, 'winledgeruser', 'master' );
if (!$conn) { exit( "Error al conectar: " . $conn);
}
$sql = "select concepto ,nlargo ,sum(REMUNERACIONES) as Remuneraciones,SUM(DEDUCCIONES) AS Deducciones from (
select nompagh.codigo,nompagh.concepto
, case nomtcon.tipo when 1 then nompagh.importe else 0 end as REMUNERACIONES
, case nomtcon.tipo when 2 then nompagh.importe else 0 end as DEDUCCIONES
,nomtcon.tipo,nomtcon.nlargo,nomeocf.apellidos,nomeocf.nombres
from nompagh inner join nomtcon on nompagh.concepto=nomtcon.concepto and nompagh.cia=nomtcon.cia and nompagh.tiponomina=nomtcon.tiponomina and (nomtcon.tipo=1 or nomtcon.tipo=2)
inner join nomeocf on nompagh.codigo=nomeocf.codigo and nompagh.cia=nomeocf.cia and nompagh.tiponomina=nomeocf.tiponomina
where nompagh.cia='zzz' and nompagh.tiponomina='E' and nompagh.desde>='16/09/2010'
and nompagh.HASTA<='30/09/2010' ) as tablax group by concepto,nlargo";

//Comprobacion QUERY
$rs = odbc_exec($conn, $sql);
if ( !$rs ) { exit( "Error en la consulta SQL" ); }
echo"<table width=700 border=1 align=center cellpadding=0 cellspacing=0>
<tr>
<td><b>Codigo</b></td><td><b>Concepto</b></td><td><b>Remuneraciones</b></td><td><b>Deducciones</b></td>
</tr>";

odbc_fetch_row($rs,0);

while($row=odbc_fetch_row($rs))
{
echo"<tr>
<td>$row[1]</td><td>$row[2]</td><td>$row[3]</td><td>$row[4]</td>
</tr>";
}
echo"</table>";
echo"</table>";
// Se cierra la conexión
odbc_close( $conn );
?>
</body>
</html>

Muchas gracias por su tiempo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

consulta sql (Sumatoria)

Publicado por leonardo_josue (1173 intervenciones) el 09/09/2011 20:26:26
Hola de nuevo Jose Quintana:

Ya te había contestado en el otro post que tienes abierto que NO ES CORRECTO QUE INCLUYAS CÓDIGO DE LENGUAJES DE PROGRAMACIÓN EN ESTE FORO, ya que este sería exclusivo de SQL. Existe un foro exclusivo para cuestiones de PHP en esta misma web

1
http://www.lawebdelprogramador.com/foros/PHP/index1.html


O también existen otras web's donde puedes publicar tu pregunta, como por ejemplo

1
http://www.forosdelweb.com/f18/


En cuanto a la respuesta que te puse acerca del manejo de fechas, no comentaste si te sirvió o no, aunque puedo asumir que ese no era el problema, pues sigues teniendo el mismo problema.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar