Question : Comment comparer deux champs et basé sur une comparaison vraie entrée dans un autre champ ?

Ok, j'ai une table qui a DeviceName, OutageType, OutageDate, DownDate, TotalDown.

ColA a les entrées multiples basées sur quand outaged produit (si la panne était en baisse ou se lève). le
ColB a le type de panne pour le dispositif spécifique dans le
ColC de kola (encore vers le haut ou vers le bas) est la date où l'occurred
ColD de panne (dans ColB) est la date le dispositif (en kola) est allée le down
ColE est tout le temps (dans le format décimal) l'où le dispositif était (c'est un champ pré-calculé inséré d'un autre manuscrit) mais seulement attaché aux champs/aux rangées aux lesquels la table du Br/>
The de devicetype='up'< ressemble : le
abcd-s-2-01, vers le bas, le te>, nulle, Null
abcd-s-2-01, vers le haut de, le >, le e>, le ime>
abcd-s-2-01, vers le bas, le te>, nulle, Null
abcd-s-2-01, vers le haut de, le >, le e>.ime>

Basically un type de panne de vers le bas contient seulement le nom d'appareil, le type de panne et quand cette panne s'est produite.  Un type de panne d'haut contient le nom, le type, date de panne, le dispositif de date est descendu, et est tout le temps où c'était le down

Here de ce que j'ai besoin.  Je dois créer une nouvelle table qui contient : les besoins ci-dessus du
TotalDown

The du
DeviceName
DeviceType
DownDate
UpDate (c'est la date l'où le devicetype='Up pour le dispositif énuméré ci-dessus en kola) d'être pour seulement ces dispositifs qui sont « en baisse ».  Le but de la table est de montrer quel dispositif est descendu et quand, et alors quand il est venu support et tout le temps cela a pris pour venir rendement de table du
The de support. devrait ressembler à : le
abcd-s-2-01, vers le bas, le >, le , mise à jour de *where du e> est l'outagedate quand l'ennui de type=up.

The que j'ai figure dehors comment obtenir la mise à jour et le TotalTime.  Je peux rechercher les 3 premières colonnes de l'autre table parce que ceux sont énumérés sur une rangée.  J'ai des problèmes essayer de rechercher l'outageDate et le TotalTime quand Type=Up et l'insérer dans mon nouveau table.

I essayé courant deux rapports de strSQL (un où outagetype=down et l'autre où outagetype=up) et compare DeviceName mais la deuxième question de SQL (où type=up) ne produit pas les mêmes données de devicename.  Par exemple : le

SQL1 produit :
devicename, outagetype, downdate
abcd-s-2-1, vers le bas, 17h00 2010-06-01 : 37
abcd-s-2-1, vers le bas, 19h00 2010-06-01 : 15
xyz-s-2-1, vers le bas, 18h00 2010-06-01 : 01
xyz-s-2-1, vers le bas, 7h05 2010-06-05 : 49
xyz-s-2-1, vers le bas, 12h15 2010-06-10 : 56

SQL2 produit :
devicename, outagetype, downdate, outagedate, totaltime
abcd-s-2-1, VERS LE HAUT DE, 17h00 2010-06-01 : 37, 17h15 2010-06-01 : 00, 0.23
abcd-s-2-1, VERS LE HAUT DE, 19h00 2010-06-01 : 15, 19h30 2010-06-01 : 18, 0.51
xyz-s-2-1, VERS LE HAUT DE, 18h00 2010-06-01 : 01, 19h00 2010-06-01 : 00, 1.00
xyz-s-2-1, VERS LE HAUT DE, 7h05 2010-06-05 : 49, 9h35 2010-06-05 : 25, 2.50
xyz-s-2-1, VERS LE HAUT DE, 12h15 2010-06-10 : 56, 11h10 2010-06-11 : 10, 22.90
xyz-s-2-1, VERS LE HAUT DE, 10h22 2010-06-06 : 00, 1h11 2010-06-07 : 41, 20.85

as que vous pouvez voir, SQL2 a une entrée supplémentaire qui n'est pas dans des résultats de la question SQL1.  Quand je fais un recordset pour comparer les deux noms d'appareil (objRS.Fields =objRS1.Fields (name)) Je n'obtiens des valeurs nulles partout ou rien becaue quand SQL2 le <> SQL1 il salit vers le haut le reste du code simple du recordset Loop.

The que j'ai est : le
objRS = SQL1
objRS1=SQL2
Do jusqu'à ce que l'objRS d'objRS.EOF
if (nom) = objRS1 l'up_date du
then = l'else
up_date = null

This fonctionne l'unitl j'obtiennent au point où il y a des résultats supplémentaires de SQL2 qui ne comparent pas à SQL1 (ou vice versa).

Is là une manière pas aussi compliquée de réaliser ceci dans VB ? J'avais essayé de le faire pendant deux jours et je frappe un block.

If que vous avez besoin de plus de clarté me laissez know.
class= de

Réponse : Comment comparer deux champs et basé sur une comparaison vraie entrée dans un autre champ ?

Supposer ayant ces données dans votre table
devicename, outagetype, downdate, outagedate, totaltime
acbd-s-2-1 AVALENT le 15h00 2010-05-05 : 00.000 NULLE NULLE
acbd-s-2-1 LÈVENT le 15h00 2010-05-05 : 00.000 18h15 2010-05-05 : 00.000 3.25
acbd-s-2-1 AVALENT le 13h00 2010-05-06 : 00.000 NULLE NULLE
acbd-s-2-1 LÈVENT le 13h00 2010-05-06 : 00.000 13h45 2010-05-06 : 00.000 0.75
acbd-s-2-1 AVALENT le 11h00 2010-05-10 : 00.000 NULLE NULLE
xyz-b-23-1 AVALENT le 12h12 2010-04-05 : 00.000 NULLE NULLE
xyz-b-23-1 LÈVENT le 12h12 2010-04-05 : 00.000 13h15 2010-04-05 : 00.000 1.01
xyz-b-23-1 AVALENT le 11h00 2010-05-05 : 00.000 NULLE NULLE
xyz-b-23-1 LÈVENT le 11h00 2010-05-05 : 00.000 14h05 2010-05-05 : 00.000 3.02
xyz-b-23-1 AVALENT le 11h15 2010-05-06 : 00.000 NULLE NULLE

si vous couriez cette question
choisir A.*, B.* de
(choisir * à partir du tblOutage où OutageType = « vers le bas ") A
intérieur joindre
(CHOISIR * à partir du tblOutage où OutageType = « vers le haut ") B
sur A.Devicename=B.Devicename ET A.downdate=b.downdate

vous avez ce résultat
devicename        outagetype   downdate                outagedate  totaltime  devicename    outagetype   downdate                outagedate              totaltime
----------------- ------------ ----------------------- ----------- ---------- ------------- ------------ ----------------------- ----------------------- ------------
acbd-s-2-1 AVALENT le 15h00 2010-05-05 : 00.000 La NULLE NULLE acbd-s-2-1 LÈVENT le 15h00 2010-05-05 : 00.000 18h15 2010-05-05 : 00.000 3.25
acbd-s-2-1 AVALENT le 13h00 2010-05-06 : 00.000 La NULLE NULLE acbd-s-2-1 LÈVENT le 13h00 2010-05-06 : 00.000 13h45 2010-05-06 : 00.000 0.75
xyz-b-23-1 AVALENT le 11h00 2010-05-05 : 00.000 La NULLE NULLE xyz-b-23-1 LÈVENT le 11h00 2010-05-05 : 00.000 14h05 2010-05-05 : 00.000 3.02
xyz-b-23-1 AVALENT le 12h12 2010-04-05 : 00.000 La NULLE NULLE xyz-b-23-1 LÈVENT le 12h12 2010-04-05 : 00.000 13h15 2010-04-05 : 00.000 1.01

(4 rangées affectées)


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