Question : Question de question de SQL

Hé, j'ai obtenu cette question hier et cela avait fonctionné très bien.  Mais il semble comme après le 12h00 où il a arrêté le travail.  Le code est pour qu'un rapport de rassemblement détermine la dernière fois quelqu'un présenté ou est parti du bâtiment.  Il semble fonctionner parfaitement, puis il a juste cessé de fonctionner.  L'erreur que j'obtiens est : la sous-question de == du

Message a renvoyé plus de 1 valeur. Ceci n'est pas autorisé quand la sous-question suit = ! =, <, <=, >, >= ou quand la sous-question est employée comme expression

Is là quelque chose dans le code qui est mal ou devrait être refait ?  Les tables regardent très bien à moi, là n'est rien étrange dans them.

This est dans un MSDE database.
class= > " clair " de
> de " codeSnippet " de class= de
class= " lineNumbers " de
class= de
1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
>Select " de l'id= " codeSnippet814553 de
= « 20100715 » de Gentime
              groupe par link3
           ) comme H 
    SUR C.RecordID = H.Link3     
 Ordre par LastName, FirstName, h.t Desc
class= de

Réponse : Question de question de SQL

La cause de votre problème est liée à la sous-question suivante :


(nom choisi de HWIndependentDevices comme D
          Intérieur joindre l'histoire comme X
            sur D.deviceid=X.link1
           et c.recordid=x.link3
           et H.t=x.gentime
         )…

La sous-question est appelée pour chaque rangée de la question principale.  Cela fonctionne quand il les valeurs 0 ou 1 pour CHAQUE rangée de la question principale.  Il échoue avec l'erreur que vous observered quand elle renvoie plus d'une valeur pour N'IMPORTE QUELLE rangée de la question principale.  

Ainsi, alors… il est sensible aux données dans une des tables corrélées : probablement histoire.  Vous vous corrélez avec l'histoire comme ceci :  « et H.t=x.gentime », qui signifie si vous obtenez link3 multiple avec le même maximum (gentime), le problème se produit.

Le problème est peu un complexe, ainsi je ne peux pas conseiller en outre sans connaissance détaillée de vos données.  Cependant, je suspecte que la sous-question dans de question les besoins probablement de se corréler avec la table d'histoire basée sur elle soit clé primaire plutôt que le gentime.  

Je vous propose également essai la question jointe pour améliorer l'isolat les données causant l'issue.  Noter que DoorCount > 1 identifie des données de problème.

 



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 :
Choisir C.FirstName, C.LastName
       , (choisir le compte (*) à partir de HWIndependentDevices comme D
          Intérieur joindre l'histoire comme X
            sur D.deviceid=X.link1
           et c.recordid=x.link3
           et H.t=x.gentime
        ) comme DoorCount  
      , h.T comme temps
      , fusionner ((maximum choisi (nom) de HWIndependentDevices comme D
          Intérieur joindre l'histoire comme X
            sur D.deviceid=X.link1
           et c.recordid=x.link3
           et H.t=x.gentime
         ), « inconnu ") comme DoorMax
      , fusionner ((minute choisie (nom) de HWIndependentDevices comme D
          Intérieur joindre l'histoire comme X
            sur D.deviceid=X.link1
           et c.recordid=x.link3
           et H.t=x.gentime
         ), « inconnu ") comme DoorMin
 
  du détenteur de carte comme C
 Intérieur joindre 
(link3 choisi, maximum (gentime) comme t 
               de l'histoire 
              Là où >= « 20100715 » de Gentime
              groupe par link3
           )  comme H 
    SUR C.RecordID = H.Link3     
 Ordre par 3 Desc
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us