Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

SQL Statement für *?" - Abfrage?

Begonnen von 4woerny, August 26, 2014, 16:15:03

⏪ vorheriges - nächstes ⏩

4woerny

Hallo @ all,

ich habe folgende Frage für 2 Abfragen  ;)
Es sind Tabellen a) tblComputer und b) tblNetwork
In a) stehen die *Stammdaten* und in b) die *Massendaten*
In gewissen Abständen frage ich alle Rechner von a) ab und trage das Ergebnis in b) ein OFFLINE, Online und Remote.

Jetzt möchte ich einmal Abfragen welcher Rechner noch nie *Online* war. UNd in einer weiteren Abfrage möchte ich Abfragen wann die Rechner das letzte mal Online waren.

Meine Idee war:

SELECT tblComputer.comCompName
FROM tblComputer INNER JOIN tblNetwork ON tblComputer.[comID] = tblNetwork.[netComREF]
WHERE (((tblNetwork.netStatus)="OFFLINE"))
GROUP BY tblComputer.comCompName

Klappt aber alles nicht.
ich bekomme immer wieder den gleichen Rechnername *zig-Fach angzeigt, oder Fehler.....

An die Abfrage b) hab ich mich noch gar getraut :-)

Könnt ihr mich bitte unterstützen

Gruß
woerny

DF6GL

Hallo,

a)  es werden soviel "gleiche" Computer angezeigt, wie für diesen Computer Einträge in tblNetwork vorhanden sind, bei denen  im Tabellen(text)feld "netstatus" der Wert "offline" steht.

(btw:  statt "Massendaten" würde ich das eher als "Detaildaten" (eines Computers) benamsen..)

b) siehe hier:  http://www.donkarl.com/?FAQ3.16

4woerny

Hallo
... so hab ich das gemacht (wahrscheinlich falsch ausgedrückt)
In tbl  ist jeder Rechner nur 1 x vorhanden ...

DF6GL

#3
Hallo,
das Datenmodell sagt aus, dass jeder Computer eine beliebig große Anzahl an "Networks" (auch gar keine) besitzen kann, was das immer auch heißen mag...

Du solltest überprüfen, ob netComRef den Datentyp Zahl, Long besitzt, falls comID auf Autowert gestellt ist. Wenn nicht, ändere das ab, nachdem Du die Beziehung gelöscht hast und setze die Beziehung nach der Änderung wieder . Stelle dabei auch referenzielle Integrität mit Aktualisierungsweitergabe ein.