Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Problemas con SUM

Estas en el tema de Problemas con SUM en el foro de SQL Server en Foros del Web. buenas gente, soy novato en esto, espero que se me de bien. Soy de Alicante (españa) y he terminado el modulo superior de Administración de ...
  #1 (permalink)  
Antiguo 14/04/2008, 09:50
 
Fecha de Ingreso: abril-2008
Ubicación: ALICANTE
Mensajes: 17
Antigüedad: 16 años
Puntos: 0
Problemas con SUM

buenas gente, soy novato en esto, espero que se me de bien. Soy de Alicante (españa) y he terminado el modulo superior de Administración de Sistemas Informáticos. Ahora mismo estoy haciendo las prácticas en una empresa.

Aqui estoy manejando SQl Server 2005 y , por lo tanto, Transact-SQL. El problema es que en clase no lo he manjeado y aqui en la empresa pues voy aprendiendo poco a poco, en realidad es parecido, cambia algunas cosas de sql.

bueno, al tema... mi problema es que estoy haciendo una consulta no muy complicada: Uniendo dos tablas (lineasPedidoCliente y LineasAlbaranCliente) tengo que mostrar descuadre de UnidadesServidas, es decir, comprobar si en alguna de las dos tablas no cuadran las unidades vendidas con las pedidas. De un mismo pedido pueden haber varias lineas de pedido. De un pedido pueden haber varios albaranes, etc, etc. El problema salta cuando hago SUM para sumar las Unidades totales que se piden en todo el pedido (sin depender del articulo) para compararlo con la cantidad de unidades (sin depender del articulo, otra vez) de el albaran. El sum del alabran funciona correctamente, pero el SUM del pedido me suma todas las lineas (hasta ahi correcto) y luego me vuelve a sumar la ultima linea he de resaltar que no es en todas las lineas, todas ellas tienen en comun que hay de un pedido hay dos o mas albaranes (es correcto y posible segun me a comentado mi encargado) posiblemente sea eso. pero... ¿como lo soluciono?.

Os dejo la consulta, creo ke no entendereis nada, pero kizas pueda servir:

select lpc.NumeroPedido, lpc.SeriePedido, count(distinct lpc.Orden) as NumeroPedidos, sum(lpc.UnidadesServidas) as UnidadesPedidas, count(lac.CodigoEmpresa) as NumeroAlbaranes, sum(lac.UnidadesServidas) as UnidadesAlbaran
from LineasPedidoCliente lpc
inner join LineasAlbaranCliente lac
on lpc.LineasPosicion=lac.LineaPedido
where lpc.CodigoEmpresa=1
and lpc.EjercicioPedido<>0
group by lpc.NumeroPedido, lpc.SeriePedido
having sum(lpc.UnidadesServidas)<>sum(lac.UnidadesServida s)
order by lpc.NumeroPedido asc, lpc.SeriePedido asc

bueno gente un saludo y muchas gracias de antemano

p.d. perdon por la biblia que os e escrito...
  #2 (permalink)  
Antiguo 15/04/2008, 01:42
 
Fecha de Ingreso: abril-2008
Ubicación: ALICANTE
Mensajes: 17
Antigüedad: 16 años
Puntos: 0
Re: Problemas con SUM

Porfavor Que Alguien Me Ayudeeeeeeee!!!!!!!!!!!!!!
  #3 (permalink)  
Antiguo 15/04/2008, 08:58
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Re: Problemas con SUM

Al parecer estas haciendo una mala combinacion de count y sum.
Puedes dar un ejemplo del resultado que esperas?
Cual es el texto del error que te salta?
Tambien da algunos registros de ejemplo de ambas tablas.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #4 (permalink)  
Antiguo 15/04/2008, 11:03
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 3 meses
Puntos: 13
Re: Problemas con SUM

Cita:
Iniciado por pikeres Ver Mensaje
Porfavor Que Alguien Me Ayudeeeeeeee!!!!!!!!!!!!!!
Las prisas no son muy bien venidas por muchos (entre los que me incluyo).
Aqui la gente ayuda porque quiere y no está todo el día pendiente del foro.

Ahora dicho esto, si dejas datos de ejemplos y el resultado esperado te ayudamos mejor.

A la espera, un saludo
  #5 (permalink)  
Antiguo 15/04/2008, 11:15
 
Fecha de Ingreso: abril-2008
Ubicación: ALICANTE
Mensajes: 17
Antigüedad: 16 años
Puntos: 0
Re: Problemas con SUM

ok gente, siento las prisas, es ke toy muy desesperado y estresado.

ahora voy a dejar el puesto de trabajo, pero mañana por la mañana prometo dejar varios ejemplos.

un saludo
  #6 (permalink)  
Antiguo 15/04/2008, 11:57
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 3 meses
Puntos: 13
Re: Problemas con SUM

tranquilo, es solo un consejo, hay gente que si le metes prisas ya no contestan.

Con ejemplos, seguro que entre todos lo solucionamos.

Un saludo
  #7 (permalink)  
Antiguo 17/04/2008, 11:07
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Re: Problemas con SUM

Y los ejemplos?
Tal parece que no hay interes :S
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #8 (permalink)  
Antiguo 17/04/2008, 11:17
 
Fecha de Ingreso: abril-2008
Ubicación: ALICANTE
Mensajes: 17
Antigüedad: 16 años
Puntos: 0
Re: Problemas con SUM

lo siento, estoy bastante agobiado, jejeje

de todas formas, ya lo tengo solucionado, lo he hecho de otra forma y me sale bastante bien

gracias por interesados, y disculparme otra vez

un saludo
  #9 (permalink)  
Antiguo 17/04/2008, 12:03
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Re: Problemas con SUM

Si nos explicas y/o muestras como lo has solucionado quizas puedas ayudar a alguien que tenga este problema.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #10 (permalink)  
Antiguo 18/04/2008, 01:36
 
Fecha de Ingreso: abril-2008
Ubicación: ALICANTE
Mensajes: 17
Antigüedad: 16 años
Puntos: 0
Re: Problemas con SUM

buuuufff!!!
es que he hecho un procedimiento muy monstruoso....
os explico asi por encima:
3 cursores: uno que calcula las unidades totales de un pedido de la tabla LineaPedidos, es decir, para el pedido x, hay x lineas de pedidos y se han pedido x unidades en total; otro que hace lo mismo pero con los albaranes en la tabla LineasAlbaranes; y el ultimo simplemente es el que muestra el numero de pedido, la serie y el Ejercicio (año). claro hay que hacer consultas que las 3 den el mismo numero de lineas de datos y cuadre todo (esto me llevó bastante tiempo y dolores de cabeza).
recorrer los 3 cursores: despues recorro los 3 cursores a la vez, por supuesto deben estar los 3 ordenados por los mismos campos y asi cuadren. se crea una tabla temporal con DECLARE....TABLE... que será donde se iran guardando los datos (numeropedido, seriepedido, ejerciciopedido, totalLineasPedido, TotalUnidadesPedido,totalLineasAlbaran, totalUnidadesAlbaran). dentro del while @@fetch_status con un if comprobamos si totalUnidadePedido y totalUnidadesAlbaran, si son distintos es que existe un descuadre entonces se guarda en la tabla temporal que se ha declarado antes. al finalizar se muestra esta tabla con los datos descuadrados.

como veis es una monstruosidad de procedimiento, pero es la unica manera que he podido hacer esta superconsulta, y aun faltan cosas por hacer.

si no entendeis algo avisarme, os pondria el fuente, pero es que ocupa mogollon..

un saludo y gracias a todos otra vez
  #11 (permalink)  
Antiguo 18/04/2008, 12:56
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Re: Problemas con SUM

Los CURSORES no son recomendados en SQL Server, no, hasta la version 2005, no conozco que cambios traiga la 2008 en este concepto.
  #12 (permalink)  
Antiguo 18/04/2008, 13:32
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Cursores

Cita:
Iniciado por iislas Ver Mensaje
Los CURSORES no son recomendados en SQL Server, no, hasta la version 2005, no conozco que cambios traiga la 2008 en este concepto.
¿Por qué? Yo los uso de vez en cuando en SQL Server 2000. Es más, el sistema que administro está lleno de ellos.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #13 (permalink)  
Antiguo 21/04/2008, 19:09
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Re: Problemas con SUM

Bueno, porque simplemente los cursores se crean en MEMORIA y dependiendo de los registros que se almacenen en tu cursor, o bien, le quitas tiempo de respuesta al servidor, o hasta podrias "tirarlo".

Saludos
  #14 (permalink)  
Antiguo 22/04/2008, 03:47
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 3 meses
Puntos: 13
Re: Problemas con SUM

ufff si se puede hacer con sql no se usan cursores!

pikeres, si hubieras puesto los ejemplos te hubieramos ayudado a hacerlo de alguna forma mejor, más eficiente y ademas hubieras aprendido algo.

Si asi te funciona, me parece muy bien, pero que funcione no significa que este bien!

Un saludo
  #15 (permalink)  
Antiguo 22/04/2008, 09:54
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Re: Problemas con SUM

Estoy de acuerdo con seyko, hay casos donde un select no es la solución, entonces se usan los cursores. Por otro lado, estos se pueden ejecutar en procesos nocturnos que no afectan a nadie.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #16 (permalink)  
Antiguo 22/04/2008, 10:30
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Re: Problemas con SUM

De acuerdo en usar los cursores como ultimo recurso....solo despues de haber agotado el resto de las alternativas.

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #17 (permalink)  
Antiguo 22/04/2008, 12:12
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Re: Problemas con SUM

El "GRUPO ANTI-CURSORES", dice, que "casi todo", lo que se hace en un cursor, se hace con T-SQL
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 15:41.