Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Select Abfrage (https://www.delphipraxis.net/60424-select-abfrage.html)

renekr 6. Jan 2006 17:50

Datenbank: SQL 2005 STD • Version: 2005 • Zugriff über: ADO

Select Abfrage
 
Hallo,
Ich habe ein kleines Problem mit einem Select Befehl auf eine Datenbank.

Habe eine Datenbank wo die Infos von den Cmputern gespeichert wird.

-Rechenrname
-IP
-MAC
-Adminrechte
-Standort ( Linie und Paltznummer )
-Eintragsdatum
-Betriebssstem

insgesamt ca 40 Spalten


Jetzt will ich eine Auswertung machen :

Komplett Übersicht:
Rechnername sollte Gruppiert werden .
Wenn möglich immer der neueste Eintrag .
und die Restlichen ca 39 Werte sollten dann von dem neuesten Eintrag sein.
Der Computername sollte nur einmal auftauchen ,obwohl mehrere unterschiedliche Einträge in der DB da sind.

Übersicht nach Kriterium:
zb. Linie sollte Gruppiert werden,oder Betiebssystem.
onst gleiche Bedingungen wie oben.
Also das ich immer nur 1 Computername bekomme und keine Doppelten ,egal was ich selektieren will.


Die anderen Werte sind aber ev. öftrs unterschiedlich zu einander,als fällt Group By weg.

Habe es mit Having probiert usw aber ohne Erfolg.


Vielen Dank.

marabu 6. Jan 2006 19:42

Re: Select Abfrage
 
Hallo René,

hier deine Komplettübersicht:

SQL-Code:
SELECT *
FROM computer o
WHERE eintrag = (
  SELECT MAX(eintrag)
  FROM computer i
  WHERE i.rechnername = o.rechnername
)
ORDER BY rechnername
Die Auswertung nach dem Betriebssystem würde, wenn ich deine Beschreibung richtig verstehe, etwa so aussehen:

SQL-Code:
SELECT *
FROM computer o
WHERE eintrag = (
  SELECT MAX(eintrag)
  FROM computer i
  WHERE i.rechnername = o.rechnername
)
AND betriebssystem = :bs
ORDER BY rechnername
Grüße vom marabu

renekr 7. Jan 2006 16:25

Re: Select Abfrage
 
Danke ,
werde ich gleich mal testen.

Kleine frage noch ?
Wie kan nich es dan namchen , wen nich zb. die Rechnernamen in einer Gruppe will, aber abhängig von der Linie.
zb:Also Linie1 hat 10 einträge aber nur 2 Verschiedene Rechnernamen.
dann sollte es so angezeigt werden:

Linie1 -- Rechner 1
Line1 -- Rechner 2
Linie2 usw.


Also ich will zuerst die Linie Gruppieren und dann darunter den Rechnernamen gruppieren und ev. darunter noch nach Betriebssystem , aber das die anderen werte und auch Rechenrname immer von dem aktuellsten (
Größte ID ) sind.


Danke schön.

jfheins 7. Jan 2006 16:44

Re: Select Abfrage
 
Ich kenne mich jetzt zwar nur mit MySQL aus, aber da kann man nach mehreren Spalten sortieren, indem man einfach z.B. angibt:
SQL-Code:
SELECT * 
FROM `sites` 
ORDER BY menu DESC , id ASC
dann wird erstmal nach menu absteigend sortiert, und wenn das gleich ist, nach id aufsteigend.

Bei dir wäre das dann etwa
SQL-Code:
order by linie,rechner,os
;)

Wie gesagt, nur so ins blaue getippt ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz