Questione : Come confrontare due campi e basato su un confronto allineare immesso in un altro campo?

Approvazione, ho una tabella che ha DeviceName, OutageType, OutageDate, DownDate, TotalDown.

ColA ho entrate multiple basate su quando outaged accaduto (se il guasto sia stato giù o aumenti). il
ColB ha il tipo di guasto per il dispositivo specificato nel
ColC della cola (ancora verso l'alto o verso il basso) è la data che il occurred
ColD del guasto (in ColB) è la data il dispositivo (in cola) è andato down
ColE è il tempo totale (nella disposizione decimale) où il dispositivo era (questo è un campo precalcolato inserito da un altro scritto) ma allegato soltanto ai campi/file a cui la tabella del Br/>
The del devicetype='up'< assomiglia: il
abcd-s-2-01, giù, te>, posizione di segnale minimo, Null
abcd-s-2-01, su, >, e>, ime>
abcd-s-2-01, giù, te>, posizione di segnale minimo, Null
abcd-s-2-01, su, >, e>.ime>

Basically un tipo del guasto di giù contiene soltanto il nome di dispositivo, il tipo di guasto e quando quel guasto ha accaduto.  Un tipo del guasto di alto contiene il nome, il tipo, data del guasto, il dispositivo della data è andato giù ed il tempo che totale era down

Here è di che cosa ho bisogno.  Devo generare una nuova tabella che contiene: necessità qui sopra del
TotalDown

The del
DeviceName
DeviceType
DownDate
UpDate (questa è la data in où il devicetype='Up per il dispositivo elencato sopra in cola) di essere per soltanto quei dispositivi che sono “giù„.  L'obiettivo della tabella è di mostrare che dispositivo è andato giù e quando ed allora quando è venuto sostegno ed il tempo totale ha preso per venire uscita della tabella del
The del sostegno. dovrebbe assomigliare a: il
abcd-s-2-01, giù, >, , aggiornamento del *where del e> è il outagedate quando la difficoltà che di type=up.

The sto avendo sta calcolando fuori come ottenere l'aggiornamento e il TotalTime.  Posso richiamare le prime 3 colonne dall'altra tabella perché quelli sono elencati su una fila.  Sto avendo problemi provare a richiamare il outageDate e il TotalTime quando Type=Up ed inserirlo nel mio nuovo table.

I provato facendo funzionare due dichiarazioni dello strSQL (una dove outagetype=down e l'altra dove outagetype=up) e confronto DeviceName ma la seconda domanda di SQL (dove type=up) non redige gli stessi dati del devicename.  Per esempio: il

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

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

as che potete vedere, SQL2 hanno un'entrata supplementare che non è nei risultati di domanda SQL1.  Quando faccio un recordset per confrontare i due nomi di dispositivo (objRS.Fields =objRS1.Fields (name)) Ottengo i valori nulli all over il posto o niente becaue quando SQL2 il <> SQL1 esso scompiglia in su il resto del codice che semplice del recordset Loop.

The ho sono: il
objRS = SQL1
objRS1=SQL2
Do fino a che il objRS di objRS.EOF
if (nome) = objRS1 up_date del
then = else
up_date = null

This non funzioni il unitl io ottiene al punto in cui ci sono risultati supplementari da SQL2 che non confrontano a SQL1 (o viceversa).

Is là un senso non così complicato realizzare questo in VB? Sto provando a farlo per i due giorni e sto colpendo un block.

If che avete bisogno di più chiarezza lo lasciate know.
class= del

Risposta : Come confrontare due campi e basato su un confronto allineare immesso in un altro campo?

Supposizione avendo questi dati in vostra tabella
devicename, outagetype, downdate, outagedate, totaltime
acbd-s-2-1 SI SCOLANO il 15:00 2010-05-05: 00.000 POSIZIONE DI SEGNALE MINIMO NULLA
acbd-s-2-1 AUMENTANO il 15:00 2010-05-05: 00.000 18:15 2010-05-05: 00.000 3.25
acbd-s-2-1 SI SCOLANO il 13:00 2010-05-06: 00.000 POSIZIONE DI SEGNALE MINIMO NULLA
acbd-s-2-1 AUMENTANO il 13:00 2010-05-06: 00.000 13:45 2010-05-06: 00.000 0.75
acbd-s-2-1 SI SCOLANO il 11:00 2010-05-10: 00.000 POSIZIONE DI SEGNALE MINIMO NULLA
xyz-b-23-1 SI SCOLANO il 12:12 2010-04-05: 00.000 POSIZIONE DI SEGNALE MINIMO NULLA
xyz-b-23-1 AUMENTANO il 12:12 2010-04-05: 00.000 13:15 2010-04-05: 00.000 1.01
xyz-b-23-1 SI SCOLANO il 11:00 2010-05-05: 00.000 POSIZIONE DI SEGNALE MINIMO NULLA
xyz-b-23-1 AUMENTANO il 11:00 2010-05-05: 00.000 14:05 2010-05-05: 00.000 3.02
xyz-b-23-1 SI SCOLANO il 11:15 2010-05-06: 00.000 POSIZIONE DI SEGNALE MINIMO NULLA

se faceste funzionare questa domanda
selezionare A.*, B.* da
(selezionare * a partire dal tblOutage dove OutageType = “giù ") A
interno unir
(SELEZIONARE * a partire dal tblOutage dove OutageType = “in su ") B
su A.Devicename=B.Devicename E su A.downdate=b.downdate

avete questo risultato
devicename        outagetype   downdate                outagedate  totaltime  devicename    outagetype   downdate                outagedate              totaltime
----------------- ------------ ----------------------- ----------- ---------- ------------- ------------ ----------------------- ----------------------- ------------
acbd-s-2-1 SI SCOLANO il 15:00 2010-05-05: 00.000 LA POSIZIONE DI SEGNALE MINIMO NULLA acbd-s-2-1 AUMENTA il 15:00 2010-05-05: 00.000 18:15 2010-05-05: 00.000 3.25
acbd-s-2-1 SI SCOLANO il 13:00 2010-05-06: 00.000 LA POSIZIONE DI SEGNALE MINIMO NULLA acbd-s-2-1 AUMENTA il 13:00 2010-05-06: 00.000 13:45 2010-05-06: 00.000 0.75
xyz-b-23-1 SI SCOLANO il 11:00 2010-05-05: 00.000 LA POSIZIONE DI SEGNALE MINIMO NULLA xyz-b-23-1 AUMENTA il 11:00 2010-05-05: 00.000 14:05 2010-05-05: 00.000 3.02
xyz-b-23-1 SI SCOLANO il 12:12 2010-04-05: 00.000 LA POSIZIONE DI SEGNALE MINIMO NULLA xyz-b-23-1 AUMENTA il 12:12 2010-04-05: 00.000 13:15 2010-04-05: 00.000 1.01

(4 file influenzate)


Altre soluzioni  
 
programming4us programming4us