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

[SOLUCIONADO] Sumar 2 columnas de 2 tablas segun criterio

Estas en el tema de Sumar 2 columnas de 2 tablas segun criterio en el foro de SQL Server en Foros del Web. Hola a todos, Llevo toda la mañana tratando de resolverlo pero no he podido y por lo mismo requiero de su ayuda... tratare de explicar ...
  #1 (permalink)  
Antiguo 30/07/2013, 14:54
 
Fecha de Ingreso: noviembre-2003
Mensajes: 209
Antigüedad: 20 años, 5 meses
Puntos: 0
Sumar 2 columnas de 2 tablas segun criterio

Hola a todos,

Llevo toda la mañana tratando de resolverlo pero no he podido y por lo mismo requiero de su ayuda... tratare de explicar lo que necesito.

Tengo 3 tablas: tbl_datos_generales, tbl_partidas y tbl_requis_distribuidas_meses

La tabla tbl_datos_generales tiene una columna llamada varios_periodos que sirve de "bandera" (los valores son Si ó No) para saber si una requisicion afecta a un solo mes o a varios meses.

La tabla tbl_partidas tiene una columna llamada total_dolares, donde se guarda el costo total de la requisicion.

La tabla tbl_requis_distribuidas_meses tiene las columnas llamadas: fecha, depto y monto. Cuando el usuario llena un formulario puede especificar si el costo de la requisición afectara a un solo mes ó se distribuira en diferentes meses.

Si afecta a un solo mes entonces el costo total de la requisición se guarda en la tabla tbl_partidas.

Si afecta a varios meses, tambien el costo total de la requisición se guarda en la tbl_partidas, y, tambien se guarda la distribucion del gasto por mes en la tabla tbl_requis_distribuidas_meses.

Estas son mis tablas relacionadas:


Ahora, en base a varios criterios debo de sumar los totales de varias requisiciones (en base a mes, año, cuenta, depto, estatus), para obtener el gasto acumulado.

Ejemplo



Necesito hacer una consulta donde, siguiendo el ejemplo, me sume los folios 10, 11 y 13, que son los que tienen valor NO en la columna varios periodos y tambien me sume el valor de la columna monto de la tabla tbl_requis_distribuidas_meses segun el criterio de la fecha.

Por ejemplo, que la fecha de criterio sea 1/9/2013, el resultado seria:

100 + 200 + 400 + 100 = 800

La consulta seria mas grande, pero con algun ejemplo que me guie me ayudara mucho.

Espero haberme dado entender, y agradesco su ayuda.

Saludos
  #2 (permalink)  
Antiguo 30/07/2013, 15:08
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Sumar 2 columnas de 2 tablas segun criterio

nada mas quieres el resultado de la suma? o necesitas mas datos?? y seria en base a los ejemplos que pones al final(la explicacion de como guardas tus datos es irrelevante para lo que necesitas cierto?)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 30/07/2013, 15:19
 
Fecha de Ingreso: noviembre-2003
Mensajes: 209
Antigüedad: 20 años, 5 meses
Puntos: 0
Respuesta: Sumar 2 columnas de 2 tablas segun criterio

Librassss!!!, saludos.....

Los datos que requiero son: departamento y total en dolares, que serian las columnas: departamento y total_usd, con estos datos comparo si el gasto del departamento esta dentro del presupuesto de cada mes, es por eso que en las requis que afectan a varios meses necesito sumar al gran total solo "la partecita del mes" y no el total de la requisicion.

El ejemplo lo trate de hacer simple, para no enrredar mas las cosas.

No tengo problema para guardar los datos, el resultado de la consulta la requiero solo para comparaciones.

Saludos y de verdad muchas gracias.
  #4 (permalink)  
Antiguo 30/07/2013, 16:26
 
Fecha de Ingreso: noviembre-2003
Mensajes: 209
Antigüedad: 20 años, 5 meses
Puntos: 0
Respuesta: Sumar 2 columnas de 2 tablas segun criterio

Creo que ahi la llevo... jejeje..... esto es lo que tengo:

Código SQL:
Ver original
  1. SELECT     departamento, SUM(total_usd) AS total_usd
  2. FROM         (SELECT     tbl_partidas.departamento, SUM(tbl_partidas.total_dolares) AS total_usd
  3.                        FROM          tbl_partidas INNER JOIN
  4.                                               tbl_datos_generales ON tbl_partidas.folio = tbl_datos_generales.id
  5.                        WHERE      (tbl_partidas.grupo_cuenta = 2000) AND (tbl_partidas.departamento = 65011) AND (MONTH(tbl_datos_generales.fecha_estimada_recepcion) = 07) AND
  6.                                               (YEAR(tbl_datos_generales.fecha_estimada_recepcion) = 2013) AND (tbl_datos_generales.estado <> N'NVA') AND (tbl_datos_generales.estado <> N'REC')
  7.                                               AND (tbl_datos_generales.estado <> N'CAN') AND (tbl_datos_generales.estado <> N'APR') AND (tbl_datos_generales.varios_peridos = N'No')
  8.                        GROUP BY tbl_partidas.departamento
  9.                        UNION
  10.                        SELECT     tbl_requis_distribuidas_meses.depto, tbl_requis_distribuidas_meses.total_dolares
  11.                        FROM         tbl_datos_generales AS tbl_datos_generales_1 INNER JOIN
  12.                                              tbl_requis_distribuidas_meses ON tbl_datos_generales_1.id = tbl_requis_distribuidas_meses.folio
  13.                        WHERE     (tbl_datos_generales_1.estado <> N'NVA') AND (tbl_datos_generales_1.estado <> N'REC') AND (tbl_datos_generales_1.estado <> N'CAN') AND
  14.                                              (tbl_datos_generales_1.estado <> N'APR') AND (MONTH(tbl_requis_distribuidas_meses.fecha) = 07) AND (YEAR(tbl_requis_distribuidas_meses.fecha)
  15.                                              = 2013) AND (tbl_requis_distribuidas_meses.depto = 65011) AND (tbl_datos_generales_1.grupo_cuenta = 2000)
  16.                        GROUP BY tbl_requis_distribuidas_meses.depto, tbl_requis_distribuidas_meses.total_dolares) AS q1
  17. GROUP BY departamento


Creo que tengo un detalle con el UNION pues si existe info en la tabla tbl_requis_distribuidas_meses me aparece el resultado, pero si no existe no me muestra nada, tomando en cuenta que la tabla tbl_partidas siempre tiene valores.

jejejej!! :D

Última edición por estlui; 30/07/2013 a las 16:26 Razón: corregir union
  #5 (permalink)  
Antiguo 30/07/2013, 16:52
 
Fecha de Ingreso: noviembre-2003
Mensajes: 209
Antigüedad: 20 años, 5 meses
Puntos: 0
Respuesta: Sumar 2 columnas de 2 tablas segun criterio

jejejee!!! revisando a fondo.... creo que esta bieeeeeennnn!!! seguire probando.....
  #6 (permalink)  
Antiguo 31/07/2013, 10:34
 
Fecha de Ingreso: noviembre-2003
Mensajes: 209
Antigüedad: 20 años, 5 meses
Puntos: 0
Respuesta: Sumar 2 columnas de 2 tablas segun criterio

Si!, era asi como lo necesito.

Saludos!

Etiquetas: columnas, tabla, tablas, valor
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 03:02.