Cuestión : Pregunta de la pregunta del SQL

Hey, conseguí esta pregunta ayer y ha estado trabajando muy bien.  Pero parece como después de que el 12:00 él haya parado el trabajo.  El código está para que un informe de la asamblea determine la vez última alguien inscrita o salió del edificio.  Parece trabajar perfectamente, después acaba de parar el trabajar.  El error que consigo es: la subconsulta del == del

Message volvió más de 1 valor. ¡Esto no se permite cuando la subconsulta sigue =! ¿=, <, <=, >, >= o cuando la subconsulta se utiliza como expression

Is allí algo en el código que es mal o debe ser hecho de nuevo?  Las tablas miran muy bien a mí, allí no son nada extraña en them.

This están en un MSDE database.
class= > " claro " del
> del " codeSnippet " del class= del
class= " lineNumbers " del
class= del
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
>Select notpretty C.FirstName, C.LastName " del class= " del id= " codeSnippet814553 del
= “20100715” de Gentime
              grupo por link3
           ) como H 
    EN C.RecordID = H.Link3     
 Orden de LastName, FirstName, h.t Desc
class= del

Respuesta : Pregunta de la pregunta del SQL

La causa de su problema se relaciona con la subconsulta siguiente:


(nombre selecto de HWIndependentDevices como D
          Interno ensamblar la historia como X
            en D.deviceid=X.link1
           y c.recordid=x.link3
           y H.t=x.gentime
         )…

La subconsulta se invoca para cada fila de la pregunta principal.  Trabaja cuando él los valores 0 o 1 para CADA fila de la pregunta principal.  Falla con el error que usted observered cuando vuelve más de un valor para CUALQUIER fila de la pregunta principal.  

Así pues, entonces… es sensible a los datos en una de las tablas correlacionadas: probablemente historia.  Usted correlaciona a la historia como esto:  “y H.t=x.gentime”, que significa si usted consigue link3 múltiple con el mismo máximo (gentime), el problema ocurre.

El problema es un poco complejo, así que no puedo aconsejar más lejos sin el conocimiento detallado de sus datos.  Sin embargo, sospecho que la subconsulta en de la pregunta necesidades probablemente de correlacionar a la tabla de la historia basada en ella es llave primaria algo que gentime.  

También le propongo intento la pregunta atada para mejorar el aislante los datos que causan la edición.  Observar que DoorCount > 1 identifica datos de problema.

 



1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
Seleccionar C.FirstName, C.LastName
       , (seleccionar la cuenta (*) de HWIndependentDevices como D
          Interno ensamblar la historia como X
            en D.deviceid=X.link1
           y c.recordid=x.link3
           y H.t=x.gentime
        ) como DoorCount  
      , h.T como tiempo
      , unirse ((máximo selecto (nombre) de HWIndependentDevices como D
          Interno ensamblar la historia como X
            en D.deviceid=X.link1
           y c.recordid=x.link3
           y H.t=x.gentime
         ), “desconocido ") como DoorMax
      , unirse ((minuto selecto (nombre) de HWIndependentDevices como D
          Interno ensamblar la historia como X
            en D.deviceid=X.link1
           y c.recordid=x.link3
           y H.t=x.gentime
         ), “desconocido ") como DoorMin
 
  de titular de tarjeta como C
 Interno ensamblar 
(link3 selecto, máximo (gentime) como t 
               de historia 
              Donde >= “20100715” de Gentime
              grupo por link3
           )  como H 
    EN C.RecordID = H.Link3     
 Orden por 3 Desc
Otras soluciones  
 
programming4us programming4us