Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-05-2011
Richard Lopez G Richard Lopez G is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 32
Poder: 0
Richard Lopez G cantidad desconocida en este momento
Sql

Estimados tengo mi Query con select anidados que he realizado con dos tablas como se muestra lineas abajo que son dos, este query trata de la asistencia del personal el cual hago la busuqeda en el primer select donde esta la tabla History hago la comparacion de fechas el problema es el siguiente que de casualidad un usuario marca dos veces sus asistencia el query me da error ya que solo busca un dato y no dos como me pueden ayudar en este tema.

select
r.*,convert(char(10),GETDATE(),112) FechaActual ,
(
select [LogTime]from History as h where [UserID]= r.FingerID AND [FKey]='Entrada'and [LogDate] ='2011/05/17')Entrada,
(
select [LogTime]from History as h where [UserID]= r.FingerID AND [FKey]='InicioAlmuerzo'and [LogDate] ='2011/05/17')InicioAlmuerzo,
(
select [LogTime]from History as h where [UserID]= r.FingerID AND [FKey]='FinAlmuerzo'and [LogDate] ='2011/05/17')FinAlmuerzo,
(
select [LogTime]from History as h where [UserID]= r.FingerID AND [FKey]='Salida'and [LogDate] ='2011/05/17')Salida
FROM
(SELECT [Cod_per]CodPersonal
,[ApePat_per]ApellidoPaterno
,[ApeMat_per]ApellidoMaterno
,[Nom_per] NombrePersonal
,[NomProy_per]Proyecto
,[NomArea_per]Area
,[NomCargo_per]Cargo
,[Estado_per]Estado
,[Cod_Finger]FingerID
FROM T_Personal
where [NomProy_per]='BMP'
and NomArea_per='Contabilidad'
and Estado_per='Activo')r;

el error es el siguiente que me da por ese inconveniente

Msg 512, Level 16, State 1, Line 1
La subconsulta ha devuelto ms de un valor, lo que no es correcto cuando va a continuacin de =, !=, <, <=, >, >= o cuando se utiliza como expresin.
Responder Con Cita
  #2  
Antiguo 18-05-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
saludos

primero que nada da una rapida visita a la guia de estilo

segundo..... podrias usar quiza distinct para capturar un solo registro, el problema radica, en que registro jalar si el primero o el segnudo (me imagino que el primero)
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 18-05-2011
Richard Lopez G Richard Lopez G is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 32
Poder: 0
Richard Lopez G cantidad desconocida en este momento
Sql

Estimado muchas gracias por tu concejo, pongamoslo que jale el ultimo registro me podrias ayudar en el codigo por favor es de suma urgencia para el dia de hoy.
Responder Con Cita
  #4  
Antiguo 18-05-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
has usado la clausula Distinct ? para que te jale solo 1 registro?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #5  
Antiguo 18-05-2011
Richard Lopez G Richard Lopez G is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 32
Poder: 0
Richard Lopez G cantidad desconocida en este momento
Sql

Amigo lo que pasa es que soy nuevo en este tema del SQL y la verda que no usado el distinct, me podrias ayudar con mi codigo por favor.

A la espera de tu comentario.
Responder Con Cita
  #6  
Antiguo 18-05-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Código SQL [-]
Select DISTINCT .... y lo que sigue en tu select

pruebalo asi y comentas
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #7  
Antiguo 18-05-2011
Richard Lopez G Richard Lopez G is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 32
Poder: 0
Richard Lopez G cantidad desconocida en este momento
Sql

Disculpe la pregunta pero que significa ese size "2".

A la espera de su comnetario
Responder Con Cita
  #8  
Antiguo 18-05-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
disculpa, lo que pasa es que habia copiado y pegado tu query y me salio todo ese codigo que viste... pero ya lo edite
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #9  
Antiguo 18-05-2011
Richard Lopez G Richard Lopez G is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 32
Poder: 0
Richard Lopez G cantidad desconocida en este momento
Sql

Estimado este es el codigo que me iva a mandar por que lo e probado y me sigue saliendo el mismo error.

select
DISTINCT
r.*,convert(char(10),GETDATE(),112) FechaActual ,
(
select [LogTime]from History as h where [UserID]= r.FingerID AND [FKey]='Entrada'and [LogDate] ='2011/05/17')Entrada,
(
select [LogTime]from History as h where [UserID]= r.FingerID AND [FKey]='InicioAlmuerzo'and [LogDate] ='2011/05/17')InicioAlmuerzo,
(
select [LogTime]from History as h where [UserID]= r.FingerID AND [FKey]='FinAlmuerzo'and [LogDate] ='2011/05/17')FinAlmuerzo,
(
select [LogTime]from History as h where [UserID]= r.FingerID AND [FKey]='Salida'and [LogDate] ='2011/05/17')Salida
FROM
(SELECT [Cod_per]CodPersonal
,[ApePat_per]ApellidoPaterno
,[ApeMat_per]ApellidoMaterno
,[Nom_per] NombrePersonal
,[NomProy_per]Proyecto
,[NomArea_per]Area
,[NomCargo_per]Cargo
,[Estado_per]Estado
,[Cod_Finger]FingerID
FROM T_Personal
where [NomProy_per]='BMP'
and NomArea_per='Sistemas'
and Estado_per='Activo')r;
Responder Con Cita
  #10  
Antiguo 18-05-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por favor, lee nuestra guía de estilo, gracias por tu colaboración.
Responder Con Cita
  #11  
Antiguo 18-05-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
que base de datos estas usando?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #12  
Antiguo 18-05-2011
Richard Lopez G Richard Lopez G is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 32
Poder: 0
Richard Lopez G cantidad desconocida en este momento
Sql

Estoy usando el SQL 2005.

El codigo que me mandastes lo prove pero nada que ver me sigue saliendo el mismo error.

Ayuda es urgente, disculpa la molestia

Msg 512, Level 16, State 1, Line 1
La subconsulta ha devuelto ms de un valor, lo que no es correcto cuando va a continuacin de =, !=, <, <=, >, >= o cuando se utiliza como expresin.
Responder Con Cita
  #13  
Antiguo 18-05-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
podrias colocar los campos que tienes en tu tabla History ?
a ver si ideamos otro metodo de sacar la informacion
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #14  
Antiguo 18-05-2011
Richard Lopez G Richard Lopez G is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 32
Poder: 0
Richard Lopez G cantidad desconocida en este momento
Sql

Estos son los campos que estan en mi history y despues lo comparo con la tabla t_Personal que se muestra en el query anterior sus campos

SELECT [Tid]
,[TerminalName]
,[UserID]
,[UserName]
,[LogDate]
,[LogTime]
,[Verify]
,[FKey]
,[DlData]
FROM [RRHH].[dbo].[History]
Responder Con Cita
  #15  
Antiguo 18-05-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
y si cambias al forma?

te hago la consulta aproximada (no es necesariamente asi usa tus campos)

Código SQL [-]
 
Select Distinct T.CodigoPersonal, T.NombrePersonal, 
Case When h.fKey = 'Entrada' then h.Hora else 0 end) As Entrada,
Case When h.fKey = 'InicioAlmuerzo' then h.Hora else 0 end) as Inicio,
Case When h.fKey = 'FinAlmuerzo' then h.Hora else 0 end) As Fin,
Case When h.fKey = 'Salida' then h.Hora else 0 end) As Salida
From Trabajadores T
Left Join Horarios h on T.CodigoPersonal = H.CodigoPersonal
Where H.Fecha = '2011/05/17'

eso te mostrara el personal con las 4 marcaciones 1 en cada columna.. repito... es un pseudocodigo, tu debeas usar tus campos
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #16  
Antiguo 18-05-2011
Richard Lopez G Richard Lopez G is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 32
Poder: 0
Richard Lopez G cantidad desconocida en este momento
Sql

Disculpa que te moleste tanto pero todo el codigo como seria, ya que hay cosas que todavia no las entiendo y me es dificil entenderlo.

Ayudame por favor

Gracias
Responder Con Cita
  #17  
Antiguo 18-05-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
no puedo darte todo el codigo porque no conozco las estructuras de tus tablas....
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #18  
Antiguo 18-05-2011
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola Richard, yo creo que el problema esta en las subconsultas del select, te esta devolviendo mas de un registro, ejecuta cada subconsulta por separado y verifica que solo te devuelva un registro.

Para que te ayudemos mejor, sería bueno que indicaras los campos que tienes con algunos datos y mostrar el resultado que quieres obtener en base a esos datos.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #19  
Antiguo 18-05-2011
Richard Lopez G Richard Lopez G is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 32
Poder: 0
Richard Lopez G cantidad desconocida en este momento
Sql

Estimado una consulta ese que es hora y horario solo es la hora o que pues.

A la espera de tu ayuda
Responder Con Cita
  #20  
Antiguo 18-05-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
es la hora
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 23:16:13.


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
Copyright 1996-2007 Club Delphi