Ok, I mieć stół który mieć DeviceName, OutageType, OutageDate, DownDate, TotalDown.
ColA mieć wieloskładnikowy wejście opierać się na gdy outaged (czy przerwa być puszek lub up). ColB mieć the typ przerwa dla the precyzować przyrząd w Kola (znowu Znowu) ColC być the data the przerwa (w ColB) occurred ColD być the data the przyrząd (w Kola) pójść down ColE być the sumaryczny czas (w dziesiątkowy format) który the przyrząd być puszek (
The stołowy spojrzenie lubić: abcd-s-2-01, Puszek, te>, Nieobowiązujący, Null abcd-s-2-01, W Górę, >, e>, ime> abcd-s-2-01, Puszek, te>, Nieobowiązujący, Null abcd-s-2-01, W Górę, >, e>.ime>
Basically przerwa typ Puszek tylko zawierać the przyrząd imię, the typ przerwa i gdy ten przerwa zdarzać się. Przerwa typ Up zawierać the imię, typ, data przerwa, daktylowy przyrząd pójść puszek, i the sumaryczny czas ono być down
Here być co I potrzebować. I potrzebować nowy stół który zawierać: DeviceName DeviceType DownDate UpDate (który być the data w che the devicetype='Up' dla the przyrząd spisywać spisywać w Kola) TotalDown
The nad potrzeba dla tylko tamte przyrząd który być "Puszek". The cel the stół być jaki przyrząd pójść puszek i gdy, i wtedy gdy ono przychodzić wsparcie i the sumaryczny czas ono wziąć powrót - sumaryczny. The stołowy wydajność musieć jak: abcd-s-2-01, Puszek, >, , e> *where aktualizacja być the outagedate gdy type=up.
The kłopot I mieć obliczać totalTime dlaczego the Aktualizacja i TotalTime. I móc the pierwszy 3 kolumna od the inny stół ponieważ kolumna spisywać na jeden rząd. I mieć problem the outageDate i TotalTime gdy Type=Up i ono w mój nowy table.
I próbować biegać dwa strSQL oświadczenie (jeden dokąd outagetype=down i the jeden dokąd outagetype=up) i porównywać DeviceName ale the drugi SQL Zapytanie (dokąd type=up) produkować the ten sam devicename dane. Na przykład:
SQL1 produkować: devicename, outagetype, downdate abcd-s-2-1, Puszek, 2010-06-01 17:00: 37 abcd-s-2-1, Puszek, 2010-06-01 19:00: 15 xyz-s-2-1, Puszek, 2010-06-01 18:00: 01 xyz-s-2-1, Puszek, 2010-06-05 07:05: 49 xyz-s-2-1, Puszek, 2010-06-10 12:15: 56
SQL2 produkować: devicename, outagetype, downdate, outagedate, totaltime abcd-s-2-1, W GÓRĘ, 2010-06-01 17:00: 37, 2010-06-01 17:15: 00, 0.23 abcd-s-2-1, W GÓRĘ, 2010-06-01 19:00: 15, 2010-06-01 19:30: 18, 0.51 xyz-s-2-1, W GÓRĘ, 2010-06-01 18:00: 01, 2010-06-01 19:00: 00, 1.00 xyz-s-2-1, W GÓRĘ, 2010-06-05 07:05: 49, 2010-06-05 09:35: 25, 2.50 xyz-s-2-1, W GÓRĘ, 2010-06-10 12:15: 56, 2010-06-11 11:10: 10, 22.90 xyz-s-2-1, W GÓRĘ, 2010-06-06 10:22: 00, 2010-06-07 01:11: 41, 20.85
as ty móc, SQL2 mieć ekstra wejście który być w SQL1 zapytanie rezultat. Gdy I robić recordset the dwa przyrząd imię (objRS.Fields (imię) =objRS1.Fields (name)) I dostawać nieobowiązujący wartość po całym the miejsce lub bałaganić becaue gdy SQL2 <> SQL1 ono bałaganić w górę the odpoczynek the recordset Loop.
The prosty kod I mieć być: objRS = SQL1 objRS1=SQL2 Do until objRS.EOF if objRS (imię) = objRS1 (imię) then up_date = objRS1 (outagedate) else up_date = null
This pracować unitl I dostawać the punkt dokąd tam być ekstra rezultat od SQL2 który porównywać SQL1 (lub wice versa).
Is tam w ten sposób skomplikowany sposób nie w VB? I próbować ono dla dwa dzień i I uderzać umysłowy block.
If ty potrzebować więcej klarowność pozwalać know.
|