Cuestión : ¿Cómo comparar dos campos y basado en una comparación verdadera entrada en otro campo?

Autorización, tengo una tabla que tenga DeviceName, OutageType, OutageDate, DownDate, TotalDown.

ColA tengo entradas múltiples basadas en cuando outaged sucedido (si la interrupción estaba abajo o sube). el
ColB tiene el tipo de interrupción para el dispositivo especificado en el
ColC de la cola (otra vez hacia arriba o hacia abajo) es la fecha que el occurred
ColD de la interrupción (en ColB) es la fecha fue el dispositivo (en cola) el down
ColE es el tiempo total (en formato decimal) abajo de el cual el dispositivo estaba (esto es un campo calculado de antemano insertado de otra escritura) pero atado solamente a los campos/a las filas los cuales la tabla del Br/>
The del devicetype='up'< parece: el
abcd-s-2-01, abajo, el te>, falta de información, Null
abcd-s-2-01, encima de, el >, e>, ime>
abcd-s-2-01, abajo, el te>, falta de información, Null
abcd-s-2-01, encima de, el >, e>.ime>

Basically un tipo de la interrupción de abajo contiene solamente el nombre de dispositivo, el tipo de interrupción y cuando ocurrió esa interrupción.  Un tipo de la interrupción de ascendente contiene el nombre, tipo, fecha de la interrupción, el dispositivo de la fecha fue abajo, y el tiempo total que era el down

Here es lo que necesito.  Necesito crear una nueva tabla que contenga: necesidades antedichas del
TotalDown

The del
DeviceName
DeviceType
DownDate
UpDate (ésta es la fecha en la cual el devicetype='Up para el dispositivo enumerado arriba en cola) de estar para solamente esos dispositivos que están “abajo”.  La meta de la tabla es demostrar fue qué dispositivo abajo y cuando, y entonces cuando vino respaldo y el tiempo total tomó para venir salida de la tabla del
The del respaldo. debe parecer: el
abcd-s-2-01, abajo, el >, , actualización del *where del e> es el outagedate cuando el apuro de type=up.

The que estoy teniendo está imaginando cómo conseguir la actualización y el TotalTime.  Puedo recuperar las primeras 3 columnas de la otra tabla porque ésos son mencionados en una fila.  Estoy teniendo problemas el intentar recuperar el outageDate y el TotalTime cuando Type=Up y el insertar de él en mi nuevo table.

I intentado funcionando dos declaraciones del strSQL (una donde outagetype=down y la otra donde outagetype=up) y comparo DeviceName pero la segunda pregunta del SQL (donde type=up) no presenta los mismos datos del devicename.  Por ejemplo: el

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

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

as que usted puede ver, SQL2 tiene una entrada adicional que no esté en resultados de la pregunta SQL1.  Cuando hago un recordset para comparar los dos nombres de dispositivo (objRS.Fields =objRS1.Fields (name)) No consigo valores nulos por todas partes o nada becaue cuando SQL2 el <> SQL1 él ensucia el resto del código simple del recordset Loop.

The que tengo soy: el
objRS = SQL1
objRS1=SQL2
Do hasta que el objRS de objRS.EOF
if (nombre) = el up_date del
then = el else
up_date = el null

This trabaje el unitl yo consigue al punto donde hay resultados adicionales de SQL2 que no comparen a SQL1 (o viceversa). ¿

Is allí una manera no tan complicada de alcanzar esto en VB? He estado intentando hacerlo por dos días y estoy golpeando un block.

If que usted necesita más claridad me deja know.
class= del

Respuesta : ¿Cómo comparar dos campos y basado en una comparación verdadera entrada en otro campo?

El asumir teniendo estos datos en su tabla
devicename, outagetype, downdate, outagedate, totaltime
acbd-s-2-1 TRAGAN el 15:00 2010-05-05: 00.000 FALTA DE INFORMACIÓN NULA
acbd-s-2-1 SUBEN el 15:00 2010-05-05: 00.000 18:15 2010-05-05: 00.000 3.25
acbd-s-2-1 TRAGAN el 13:00 2010-05-06: 00.000 FALTA DE INFORMACIÓN NULA
acbd-s-2-1 SUBEN el 13:00 2010-05-06: 00.000 13:45 2010-05-06: 00.000 0.75
acbd-s-2-1 TRAGAN el 11:00 2010-05-10: 00.000 FALTA DE INFORMACIÓN NULA
xyz-b-23-1 TRAGAN el 12:12 2010-04-05: 00.000 FALTA DE INFORMACIÓN NULA
xyz-b-23-1 SUBEN el 12:12 2010-04-05: 00.000 13:15 2010-04-05: 00.000 1.01
xyz-b-23-1 TRAGAN el 11:00 2010-05-05: 00.000 FALTA DE INFORMACIÓN NULA
xyz-b-23-1 SUBEN el 11:00 2010-05-05: 00.000 14:05 2010-05-05: 00.000 3.02
xyz-b-23-1 TRAGAN el 11:15 2010-05-06: 00.000 FALTA DE INFORMACIÓN NULA

si usted funcionó con esta pregunta
seleccionar A.*, B.* de
(seleccionar * del tblOutage donde OutageType = “abajo ") A
interno ensamblar
(SELECCIONAR * del tblOutage donde OutageType = “para arriba ") B
en A.Devicename=B.Devicename Y A.downdate=b.downdate

usted tiene este resultado
devicename        outagetype   downdate                outagedate  totaltime  devicename    outagetype   downdate                outagedate              totaltime
----------------- ------------ ----------------------- ----------- ---------- ------------- ------------ ----------------------- ----------------------- ------------
acbd-s-2-1 TRAGAN el 15:00 2010-05-05: 00.000 La FALTA DE INFORMACIÓN NULA acbd-s-2-1 SUBE el 15:00 2010-05-05: 00.000 18:15 2010-05-05: 00.000 3.25
acbd-s-2-1 TRAGAN el 13:00 2010-05-06: 00.000 La FALTA DE INFORMACIÓN NULA acbd-s-2-1 SUBE el 13:00 2010-05-06: 00.000 13:45 2010-05-06: 00.000 0.75
xyz-b-23-1 TRAGAN el 11:00 2010-05-05: 00.000 La FALTA DE INFORMACIÓN NULA xyz-b-23-1 SUBE el 11:00 2010-05-05: 00.000 14:05 2010-05-05: 00.000 3.02
xyz-b-23-1 TRAGAN el 12:12 2010-04-05: 00.000 La FALTA DE INFORMACIÓN NULA xyz-b-23-1 SUBE el 12:12 2010-04-05: 00.000 13:15 2010-04-05: 00.000 1.01

(4 filas afectadas)


Otras soluciones  
 
programming4us programming4us