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

[SOLUCIONADO] comparación entre 2 tablas

Estas en el tema de comparación entre 2 tablas en el foro de SQL Server en Foros del Web. Hola a todos, queria pedirles un enorme favor si es que alguien me pudiese ayudar con la siguiente duda que poseo: poseo dos tablas con ...
  #1 (permalink)  
Antiguo 26/02/2013, 07:23
 
Fecha de Ingreso: enero-2013
Mensajes: 41
Antigüedad: 11 años, 3 meses
Puntos: 0
comparación entre 2 tablas

Hola a todos, queria pedirles un enorme favor si es que alguien me pudiese ayudar con la siguiente duda que poseo:

poseo dos tablas con dos de la siguiente forma. (modo ejemplo explicativo)

Tabla 1:

l x1 l x2 l x3 l x4 l x5 l x6 l año l mesl



Tabla 2:

l x1 l x2 l x3 l x4 l x5 l x6 l x7 l x8 l año l mes l

tabla 2 es una tabla original de carga que almacena información del mes actual (solamente) y tabla 1 es una tabla resumen que mantiene información acumulativa de todos los meses, lo que necesito hacer es que cuando yo cargue información desde la tabla 2 a la tabla 1, si es que ya existe información de ese mes y ese año en tabla 1 me borre la información de ese es( sin afectarme los otros meses), es decir si poseo información de enero 2013 en la tabla 2, y la quiero traspasar a la tabla 1 pero esta ya posee unos pocos datos de enero 2013 dentro de ella, necesito que me los borre solo los datos de enero 2013 y me los vuelva a cargar, espero que me puedan ayudar se los agradecería mucho..:D
  #2 (permalink)  
Antiguo 26/02/2013, 07:47
 
Fecha de Ingreso: diciembre-2012
Mensajes: 83
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: comparación entre 2 tablas

por ejemplo antes de cargarla puedes simplemente hacer el delete de esta forma

delete from tabla where año = '2013' and mes = 'enero'

obvio dependiendo de como tienes los registros guardadosen tu base, esto borraria todos los datos de enero del 2013 que ya tienes
  #3 (permalink)  
Antiguo 26/02/2013, 08:01
 
Fecha de Ingreso: enero-2013
Mensajes: 41
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: comparación entre 2 tablas

Gracias otra consulta es que esta carga y comparación lo quiero hacer de forma automática mediante archivos.bat, como puedo hacer que año y mes sean parámetros llamarlos con el delete y que al momento que ejecute los archivos .bat estos me los preguntes, espero que me puedas ayudar... saludos
  #4 (permalink)  
Antiguo 26/02/2013, 08:11
 
Fecha de Ingreso: diciembre-2012
Mensajes: 83
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: comparación entre 2 tablas

Puedes mostrarme la consulta que usas para pasar los datos de la tabla 2 a la 1 para que me quede mas claro porfa? :P
y explicame un poco como funciona ajajja, vas respaldando os datos del mes anterior o algo asi?

saludos :P

Última edición por leo_acn; 26/02/2013 a las 08:17
  #5 (permalink)  
Antiguo 26/02/2013, 08:18
 
Fecha de Ingreso: enero-2013
Mensajes: 41
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: comparación entre 2 tablas

tienes algun correo donde te lo pueda adjuntar? es que al enviartelo por aqui me sale error de publicación...:S... ahhh otra cosa importante el sql que utilizo es sql server 2005...:)
  #6 (permalink)  
Antiguo 26/02/2013, 08:22
 
Fecha de Ingreso: diciembre-2012
Mensajes: 83
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: comparación entre 2 tablas

[email protected] ;)

si puedes intenta publicarlo para que los demas puedan ayudar igual :P ;)
  #7 (permalink)  
Antiguo 26/02/2013, 08:27
 
Fecha de Ingreso: enero-2013
Mensajes: 41
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: comparación entre 2 tablas

query enviado, sii lo intentaré, lo que pasa que desde el lugar que estoy no puedo subirlo pero seguiré intentando desde otro sector... saludos...
  #8 (permalink)  
Antiguo 26/02/2013, 08:31
 
Fecha de Ingreso: enero-2013
Mensajes: 41
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: comparación entre 2 tablas

adjunte una imagen para que puedas ver los campos de la tabla original. saludos...
  #9 (permalink)  
Antiguo 26/02/2013, 08:41
 
Fecha de Ingreso: diciembre-2012
Mensajes: 83
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: comparación entre 2 tablas

select origen, emp, des_tipdocum, ano_vencimiento, TRAMO_AÑO,
CONVERT (NUMERIC(10,6),ISNULL(SUM(importe)/1000000,0))as Importe,
CONVERT (NUMERIC(10,6),ISNULL(SUM(importe2)/1000000,0))as Importe_2,
RUT_USO_MOVIL, Adquira, Proveedores, marca_minsal, Convert(NUMERIC(4),aaaa) as Año, Convert(nvarchar(20),
case when mm='01' then 'Enero'
when mm='02' then 'Febrero'
when mm='03' then 'Marzo'
when mm='04' then 'Abril'
when mm='05' then 'Mayo'
when mm='06' then 'Junio'
when mm='07' then 'Julio'
when mm='08' then 'Agosto'
when mm='09' then 'Septiembre'
when mm='10' then 'Octubre'
when mm='11' then 'Noviembre'
when mm='12' then 'Diciembre'
end) as 'Mes' into #apoyo
FROM TA_MORA
where [des_tipdocum]<>'DEVOLUCION' and
[des_tipdocum]<>'DOC. AUTORIZACION PAGO ADELANTADO' and
[des_tipdocum]<>'LÍQUIDO PRODUCTO'and
[des_tipdocum]<>'NOTA DE DEBITO'and
[origen]<>'Refovo' and
[TRAMO_AÑO]<>'2008 y más' and
[TRAMO_AÑO]<>'Vigente' and
[marca_minsal]<>'SI'
group by RUT_USO_MOVIL,mm,aaaa,origen,emp,des_tipdocum,ano_ vencimiento, TRAMO_AÑO, Adquira, Proveedores,marca_minsal
having RUT_USO_MOVIL<>''


delete from tabla where mes in(select distinct mes from #apoyo)
and año in(select distinct año from #apoyo)

insert into tabla
select * from #apoyo

drop tabla #apoyo


Lo que se me ocurrió es eso primero guardar los datos que vas a respaldar en una tabla temporal,
luego tomando el mes y el año de esa tabla temporal (#apoyo) puedes eliminarlos de tu tabla
finalmente solo guardas todo lo de la tabla teporal en la tabla de respaldo y borras la temporal, aunque como es temporal no es necesario xD
Bueno eso se me vino a la mente, tal vez los demas tengan una mejor solución, por mientras puedes intentar algo asi o se te ocurra una mejor
idea con ese ejemplo ;)

Saludos
  #10 (permalink)  
Antiguo 26/02/2013, 08:42
 
Fecha de Ingreso: enero-2013
Mensajes: 41
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: comparación entre 2 tablas

mira TA_MORA es la tabla 2, esta es una base que almacena informacion solo del mes que se está actualmente, mientras que TA_MORA_MODI, es la tabla 1 y esta va almacenando toda la información que TA_MORA le va entregando, tanto de meses anteriores como del mes actual que se ingresa me entiendes, ahora lo que yo deseo hacer es es que cuando TA_MORA le vaya a entregar información a TA_MORA_MODI, me revise que TA_MORA_MODI no tenga datos ya existentes del mes que se esta cargando, y en caso que si existan datos del mes que se este cargando estos sean borrados de TA_MORA_MODI y que se transpase la información completa desde TA_MORA a TA_MORA_MODI, espero que me puedas Ayudar saludos
  #11 (permalink)  
Antiguo 26/02/2013, 09:05
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: comparación entre 2 tablas

para enviar parametros a un bat:


c:\miarchivo.bat param1 param2 param3

dentro del bat

Código Bat:
Ver original
  1. echo off
  2. echo "parametro 1" %1
  3. echo "parametro 2" %2
  4. echo "parametro 3 "%3

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #12 (permalink)  
Antiguo 26/02/2013, 09:08
 
Fecha de Ingreso: diciembre-2012
Mensajes: 83
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: comparación entre 2 tablas

libras sabe! jajajaja solo una correcion en el codigo anterior que ande, el delete deberia ser mas o menos asi:

delete tabla
from tabla a, (select distinct mes, año from #apoyo) b
where a.mes = b.mes and a.año = b.año

Saludos
  #13 (permalink)  
Antiguo 26/02/2013, 10:44
 
Fecha de Ingreso: enero-2013
Mensajes: 41
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: comparación entre 2 tablas

holan libra disculpa que te moleste pero tengo una duda respecto crear archivos . bat mira lo que quiero es ejecutar un procedimiento almacenado desde sql server 2005, mediante un archivo .bat, lo unico es que este procedimiento para que se ejecute es necesario ingresar 2 parametro año y mes como lo puedo hacer para que dentro del archivo .bat me pregunte estos dos parámetros...:O..
  #14 (permalink)  
Antiguo 27/02/2013, 14:47
 
Fecha de Ingreso: enero-2013
Mensajes: 41
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: comparación entre 2 tablas

funciona muy pero muy bien señor Leo_acn

Última edición por jormufue; 27/02/2013 a las 14:53

Etiquetas: tabla, tablas
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 16:27.