Unir 2 tablas en una consulta pero con condicion
buenas tardes
ahi va mi problema tengo 2 tablas 1 de movimientos que llamaremos MOVI Periodo, Cuenta, DH, MND, Importe 1 de Saldos que llamaremos Saldo Año, Cuenta, Debe01, Haber01, Debe02, Haber02.... Debe12, Haber12 la consulta que necesito es mas o menos la siguiente ubicar las cuentas contables que han tenido movimiento en un periodo x, pero a la ves Unirlas con las cuentas que tengan al menos un saldo en los meses anteriores al periodo (tiene saldo si Debe01 - Haber01 + Debe02 - Haber02 + Debe03 - Haber03.... Deben - Habern) es Diferente de 0, donde n es el mes contable menos 1 entonces... he estado haciendo muchas pruebas y no logro el resultado pedido puesto que me jalan todas las cuentas (del movimiento que es correcto), pero tambien todas las del saldo, no tengo ideas para hacer una funcion que me tome la suma de la tabla de saldos y muestre los que son diferentes de cero Estoy trabajando con Access (Si lo se..... Access), pero tambien con MS SQL SERVER Alguna idea? que puedas funcionarme al menos en SQL Server? gracias |
Hola
No entiendo. Saludos |
no?
a ver te explico tengo 2 tablas 1 donde estan los movimientos de una cuenta contable y en otra estan los saldos de la misma cuenta, solo que la tabla de saldos tiene 24 campos vale decir Cita:
entonces el query que quiero debe hacer mas o menos esto 1.- identificar las cuentas que tienen movimientos dentro del mes solicitado 2.- identificar las cuentas que en la tabla de saldos el resultado de sumar y restar Debe01+Debe02+Debe03....Debenn(donde nn=mes -1) - Haber01+Haber02+Haber03...habernn(donde nn=mes -1) Se entiende ahora? he estado revisando y creo que debo usar Having, armando una cadena sql donde me vaya sumando los campos hasta el mes en cuestion |
Hola...
Si pones un ejemplo más gráfico del resultado que quieres, se te podría entender mejor. ¿Puedes poner el resultado que esperas obtener, usando valores? Saludos... |
ok con datos
el problema basicamente es sacar los datos de la tabla de saldos porque con los movimientos no hay problema Ejemplo datos de la tabla de saldos, solo mostrarte los 4 primeros meses imaginando que estoy en el mes 5 Cita:
entonces deberia mostrarme las cuentas 104001 saldo....75.00 104003 saldo.....-99.00 la 104002 y la 104004 no porque la sumatoria del debe-haber da como resultado cero (o) ahora si me deje entender? |
Hola
Me da la impresion de que el concepto de las tablas no es el idoneo. Para mi seria mejor asi: Año, Cuenta, Debe, Haber, PERIODO Con tus datos quedaria asi: Cuenta..... Debe....... Haber......PERIODO 104001.....100.00.......0.00........ 01 104002.......0.00.......0.00........ 01 104003.......1.00.......0.00........ 01 104004......25.00.......0.00........ 01 104001......25.00.......0.00........ 02 104002.......0.00.......0.00........ 02 104003.....100.00.......0.00........ 02 104004.......0.00.......0.00........ 02 104001.......0.00......50.00........ 03 104002.......0.00.......0.00........ 03 104003.......0.00.....200.00........ 03 104004.......0.00......25.00........ 03 Sacar datos de aqui seria muy sencillo, por año, periodo, cuenta, debe, haber, sumatorias, etc... Saludos |
Cita:
Sinceramente tampoco logro entender lo que deseas. Te aconsejo que utilices la técnica "divide y vencerás" si es que no logras comprender la tarea en su totalidad. Saludos, Chris |
Cita:
si el diseño de la tabla de saldos fuese como el que caral propone, entonces tendria 12 registros por cada cuenta y por cada año versus 1 registro por cuenta como lo tengo ahora alguien podria hacer una comparacion (en espacio) sobre cual opcion es mejor? |
mas o menos lo he solucionado asi...
aunque creo que mejor usare having |
Hola
Peso, Bites. Si colocas una tabla con los datos en una linea y otra con los datos como digo y ves cuanto pesa (mg) tendra que ser lo mismo ya que son Bites o Bytes o lo que sea.:D es lo mismo: 1,1 Que 1 1 La diferencia que veo es el orden de la tabla, el diseño sera mejor, en mi opinion. Ademas no se tendra que hacer mucho (sql) para obtener los datos. No se, digo... Saludos |
La franja horaria es GMT +2. Ahora son las 07:08:17. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi