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

Comparar datos de una misma tabla

Estas en el tema de Comparar datos de una misma tabla en el foro de SQL Server en Foros del Web. Hola es la primera vez que creo un tema por aca, les cuentos tengo una tabla que tiene estos datos de ejemplo: El asunto es ...
  #1 (permalink)  
Antiguo 03/02/2016, 11:07
 
Fecha de Ingreso: octubre-2014
Mensajes: 5
Antigüedad: 10 años
Puntos: 0
Busqueda Comparar datos de una misma tabla

Hola es la primera vez que creo un tema por aca, les cuentos tengo una tabla que tiene estos datos de ejemplo:



El asunto es que quiero hacer una consultar par auna auditoria, que quieren solo los Y (Y=autorizado, N= NO autorizado), seria facil con un where confirmed='Y' pero resulta que hay Y que se mantienen, es decir que si yo la autorizo queda grabado y despues viene pepito (que no tiene permisos) y modifica otra cosa el documento le queda como 'Y' tambien a pesar que modifico otro campo, entonces el auditor me dira quien es este que no tiene autorizacion con Y, entonces la consulta es solo quiero mostrar los 'Y' de la tabla pero que sean precedidos de una columana anterior N, es posible hacerlo?

Muchas gracias

Última edición por esteban0291; 03/02/2016 a las 11:25
  #2 (permalink)  
Antiguo 03/02/2016, 13:36
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Comparar datos de una misma tabla

Pues esto es MANEJO DE CONJUNTOS, tienes el conjunto "A", que tienen una "N".

SELECT ndoc, confirmed = 'N' FROM...................

Y tienes otro conjunto de datos, que tienen "Y"

SELECT ndoc, confirmed = 'Y' FROM...................

¿Que hace falta?, Unir ambos conjuntos por ndoc y que sean de la misma fecha, ¿cierto?
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 03/02/2016, 13:36
 
Fecha de Ingreso: junio-2011
Mensajes: 289
Antigüedad: 13 años, 5 meses
Puntos: 15
Respuesta: Comparar datos de una misma tabla

La opción sin pensar ni analizar mucho sería hacer 2 temp, una con los Y de fecha más reciente (descartando Y anteriores para el mismo documento) y otra con los N de fecha más reciente (descartando N anteriores para el mismo documento) y haces un join por el num del documento, y además preguntas si el Y tiene fecha-hora mayor al N
  #4 (permalink)  
Antiguo 03/02/2016, 13:42
 
Fecha de Ingreso: octubre-2014
Mensajes: 5
Antigüedad: 10 años
Puntos: 0
Respuesta: Comparar datos de una misma tabla

Cita:
Iniciado por iislas Ver Mensaje
Pues esto es MANEJO DE CONJUNTOS, tienes el conjunto "A", que tienen una "N".

SELECT ndoc, confirmed = 'N' FROM...................

Y tienes otro conjunto de datos, que tienen "Y"

SELECT ndoc, confirmed = 'Y' FROM...................

¿Que hace falta?, Unir ambos conjuntos por ndoc y que sean de la misma fecha, ¿cierto?
sgracias por responder, si exacto eso necesito. :D
  #5 (permalink)  
Antiguo 03/02/2016, 14:09
 
Fecha de Ingreso: octubre-2014
Mensajes: 5
Antigüedad: 10 años
Puntos: 0
Respuesta: Comparar datos de una misma tabla

lo resolvi con esto


SELECT T1.Confirmed,T1.UserSign2,t1.LogInstanc,t3.userSig n2, T1.*
FROM adoc AS T1
LEFT JOIN adoc AS T2 ON T2.docentry=T1.docentry AND T2.LogInstanc=T1.LogInstanc-1
left join ousr as t3 on t1.UserSign2=t3.USERID
WHERE T1.Confirmed='Y'
AND (T1.LogInstanc=0 OR T2.Confirmed='N' AND T1.ObjType=17)


saludos,
  #6 (permalink)  
Antiguo 03/02/2016, 14:10
 
Fecha de Ingreso: octubre-2014
Mensajes: 5
Antigüedad: 10 años
Puntos: 0
Busqueda Comparar datos de dos tablas iguale

hola,

que quiero hacer una consultar para una auditoria, que quieren solo los Y (Y=autorizado, N= NO autorizado), seria facil con un where confirmed='Y' pero resulta que hay Y que se mantienen, es decir que si yo la autorizo queda grabado y después viene pepito (que no tiene permisos) y modifica otra cosa el documento le queda como 'Y' también a pesar que modifico otro campo, entonces el auditor me dira quien es este que no tiene autorización con Y, entonces la consulta es solo quiero mostrar los 'Y' de la tabla pero que sean precedidos de una columna anterior N, es posible hacerlo?

datos de ejemplo:


utilizo sql server 2008, y longinstance es el que le da el orden, cabe destacar que la tabla ordr es el ultimo estado del documento, me explico esto es una orden de venta, alguin modifico quedo en la tabla adoc, después modifica otra persona y la linea anterior queda en la tabla ordr y la nueva linea con lo modificado queda en la ordr y queda como loginistances i=0, y las que quedan en adoc van quedando como 1,2,3, etc,

esta es la consulta en la que estoy trabajando:

select docentry as ndoc,Confirmed as confirmado,UserSign2 as usuario,ObjType as tipodoc ,UpdateDate as fecha,UpdateTS as Hora,LogInstanc as linealog from adoc
where ObjType=17
union all
select DocNum,Confirmed,UserSign2,ObjType,UpdateDate,Upda teTS,LogInstanc from ordr
order by ndoc,hora

Muchas gracias!
  #7 (permalink)  
Antiguo 03/02/2016, 14:37
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Comparar datos de una misma tabla

Estás siguiendo el mismo problema en una etapa posterior.
Continúa en el mismo hilo y no abras nuevos. Se pierde la continuidad y no está permitido en las PDU
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 03/02/2016, 14:41
 
Fecha de Ingreso: octubre-2014
Mensajes: 5
Antigüedad: 10 años
Puntos: 0
Respuesta: Comparar datos de una misma tabla

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Estás siguiendo el mismo problema en una etapa posterior.
Continúa en el mismo hilo y no abras nuevos. Se pierde la continuidad y no está permitido en las PDU
a muy bien, gracias

Etiquetas: query, sql, sql-server-2008, sql2008, tabla
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 08:34.