Vraag : Hoe vergelijken twee gebieden en gebaseerd op een Ware die vergelijking in een ander gebied wordt ingevoerd?

O.k., heb ik een lijst die DeviceName heeft, heeft OutageType, OutageDate, DownDate, TotalDown.

ColA veelvoudige die ingangen worden gebaseerd op toen gebeurd outaged (of de stroomonderbreking neer of omhoog was).
ColB heeft het type van stroomonderbreking voor het gespecificeerde apparaat in Kola (opnieuw naar boven of naar onder)
ColC is de datum is de stroomonderbreking (in ColB) occurred
ColD de datum ging het apparaat (in Kola) down
ColE is de totale tijd (in decimaal formaat) het apparaat was waaronderaan (die dit is a precalculated gebied van een ander manuscript wordt opgenomen) maar slechts aan gebieden/rijen vastmaakte die devicetype='up'< br/>
The- lijst als kijkt:
abcd-s-2-01, onderaan, te>, Null
abcd-s-2-01, omhoog, >, e>, ime>
abcd-s-2-01, onderaan, te>, Null
abcd-s-2-01, omhoog, >, e>.ime>

Basically een stroomonderbrekingstype van onderaan slechts bevat de apparatennaam, het type van stroomonderbreking en toen die stroomonderbreking voorkwam.  Een stroomonderbrekingstype van omhoog bevat de naam, type, datum van stroomonderbreking, daalde het datumapparaat, en de totale tijd het down

Here was is wat de behoefte van I.  Ik moet een nieuwe lijst creëren die bevat:
DeviceName
DeviceType
DownDate
UpDate (die dit is de datum waarin devicetype='Up voor het apparaat hierboven in Kola wordt vermeld)
TotalDown

The moet hierboven voor slechts die apparaten zijn die „onderaan“ zijn.  Het doel van de lijst is te tonen welk apparaat daalde en wanneer, en dan toen het file en de totale tijd kwam het om nam te komen file.
The- lijstoutput zou moeten kijken als:
abcd-s-2-01, onderaan, >, , e> *where update is outagedate wanneer het probleem type=up.

The ik heb berekent hoe te om de Update en TotalTime te krijgen.  Ik kan de eerste 3 kolommen van de andere lijst terugwinnen omdat die op één rij vermeld zijn.  Ik heb problemen proberend om outageDate en TotalTime terug te winnen toen Type=Up en het opnemen van het in mijn nieuwe table.

I probeerden lopend twee strSQLverklaringen (waar outagetype=down en andere waar outagetype=up) en DeviceName vergelijken maar de tweede SQL Vraag (waar type=up) niet de zelfde devicenamegegevens produceert.  Bijvoorbeeld:

SQL1 produceert:
devicename, outagetype, downdate
abcd-s-2-1, onderaan, 17:00 2010-06-01: 37
abcd-s-2-1, onderaan, 19:00 2010-06-01: 15
xyz-s-2-1, onderaan, 18:00 2010-06-01: 01
xyz-s-2-1, onderaan, 07:05 2010-06-05: 49
xyz-s-2-1, onderaan, 12:15 2010-06-10: 56

SQL2 produceert:
devicename, outagetype, downdate, outagedate, totaltime
abcd-s-2-1, OMHOOG, 17:00 2010-06-01: 37, 17:15 2010-06-01: 00, 0.23
abcd-s-2-1, OMHOOG, 19:00 2010-06-01: 15, 19:30 2010-06-01: 18, 0.51
xyz-s-2-1, OMHOOG, 18:00 2010-06-01: 01, 19:00 2010-06-01: 00, 1.00
xyz-s-2-1, OMHOOG, 07:05 2010-06-05: 49, 09:35 2010-06-05: 25, 2.50
xyz-s-2-1, OMHOOG, 12:15 2010-06-10: 56, 11:10 2010-06-11: 10, 22.90
xyz-s-2-1, OMHOOG, 10:22 2010-06-06: 00, 01:11 2010-06-07: 41, 20.85

as u kunnen zien, heeft SQL2 een extra ingang die niet in SQL1 vraagresultaten is.  Wanneer ik een recordset de twee apparatennamen (objRS.Fields (naam) doe vergelijken =objRS1.Fields (name)) Ik krijg ongeldige waarden helemaal over de plaats of niets becaue wanneer SQL2 <> SQL1 het omhoog de rest van de recordsetLoop.

The die ik ben heb gehad:
objRS = SQL1
objRS1=SQL2
Do tot objRS.EOF
if objRS (naam) = objRS1 (naam)
then up_date = objRS1 (outagedate) else
up_date = null

This unitl werkt krijg ik aan het punt waar er extra resultaten van SQL2 zijn die niet bij SQL1 vergelijken (of vice versa).

Is daar een niet zo ingewikkelde manier om dit in VB te bereiken? Ik heb geprobeerd om het twee dagen te doen en ik raak een geestelijke block.

If u meer duidelijkheid laat me know.
nodig hebt

Antwoord : Hoe vergelijken twee gebieden en gebaseerd op een Ware die vergelijking in een ander gebied wordt ingevoerd?

Het veronderstellen hebbend dit gegeven in uw lijst
devicename, outagetype, downdate, outagedate, totaltime
acbd-s-2-1 ONDERAAN 15:00 2010-05-05: 00.000 ONGELDIGE ONGELDIG
acbd-s-2-1 15:00 OMHOOG 2010-05-05: 00.000 18:15 2010-05-05: 00.000 3.25
acbd-s-2-1 ONDERAAN 13:00 2010-05-06: 00.000 ONGELDIGE ONGELDIG
acbd-s-2-1 13:00 OMHOOG 2010-05-06: 00.000 13:45 2010-05-06: 00.000 0.75
acbd-s-2-1 ONDERAAN 11:00 2010-05-10: 00.000 ONGELDIGE ONGELDIG
xyz-B-23-1 ONDERAAN 12:12 2010-04-05: 00.000 ONGELDIGE ONGELDIG
xyz-B-23-1 12:12 OMHOOG 2010-04-05: 00.000 13:15 2010-04-05: 00.000 1.01
xyz-B-23-1 ONDERAAN 11:00 2010-05-05: 00.000 ONGELDIGE ONGELDIG
xyz-B-23-1 11:00 OMHOOG 2010-05-05: 00.000 14:05 2010-05-05: 00.000 3.02
xyz-B-23-1 ONDERAAN 11:15 2010-05-06: 00.000 ONGELDIGE ONGELDIG

als u deze vraag in werking stelde
selecteer A.*, B.* van
(selecteer * uit tblOutage waar OutageType = „onderaan“) A
binnen treed toe
(SELECTEER * uit tblOutage waar OutageType = „omhoog“) B
op A.Devicename=B.Devicename EN A.downdate=b.downdate

u hebt dit resultaat
devicename        outagetype   downdate                outagedate  totaltime  devicename    outagetype   downdate                outagedate              totaltime

acbd-s-2-1 ONDERAAN 15:00 2010-05-05: 00.000 ONGELDIG VERKLAAR OMHOOG ACBD-S-2-1 15:00 2010-05-05 NIETIG: 00.000 18:15 2010-05-05: 00.000 3.25
acbd-s-2-1 ONDERAAN 13:00 2010-05-06: 00.000 ONGELDIG VERKLAAR OMHOOG ACBD-S-2-1 13:00 2010-05-06 NIETIG: 00.000 13:45 2010-05-06: 00.000 0.75
xyz-B-23-1 ONDERAAN 11:00 2010-05-05: 00.000 ONGELDIG VERKLAAR OMHOOG XYZ-B-23-1 11:00 2010-05-05 NIETIG: 00.000 14:05 2010-05-05: 00.000 3.02
xyz-B-23-1 ONDERAAN 12:12 2010-04-05: 00.000 ONGELDIG VERKLAAR OMHOOG XYZ-B-23-1 12:12 2010-04-05 NIETIG: 00.000 13:15 2010-04-05: 00.000 1.01

(beïnvloede rij 4)


Andere oplossingen  
 
programming4us programming4us