Der erste selektierte Satz ist der aktuellste.Code:SELECT * FROM Tabellenname ORDER BY LastModTime DESC
Liebe Gemeinde,
ich hoffe mir kann jemand bei meinem Queryproblem helfen.
Es geht um einen SWD Report.
Ich habe eine Tabelle die folgendermassen aussieht:
Nun möchte ich das er mir den letzten aktuellen Status, anhand des Datums für alle Rechner als Datensatz ausgibt.
Bin echt schon am verzweifeln.
Anbei ein Screenshot.
Vielen Dank im Voraus
ArcaDe
Der erste selektierte Satz ist der aktuellste.Code:SELECT * FROM Tabellenname ORDER BY LastModTime DESC
Gruß, der Michl
* * * if you want them to RTFM, make a better FM! * * *
Das stimmt so habe ich die Tabelle auf dem Screenshot abgefragt.
Nur möchte ich das Ergebnis unten (die 3 gelben Zeilen) exakt so ausgegeben haben.
Das heisst aktuellstes Datum des Eintrags sowie den Status dazu (den aktuellsten somit). Irgendwie kann man Selects miteinander kombinieren aber ich bekomme da bei meinen versuchen ständig Syntaxfehler.
Vielen Dank für die schnelle Antwort.
hilft dir das weiter?
PHP-Code:SELECT * FROM Tabellenname GROUP BY ComputerName ORDER BY LastModTime DESC
computer tun nur das was man ihnen sagt, meistens
Hallo,
hier bekomme ich die Fehlermeldung:
[Microsoft][ODBC SQL Server Driver][SQL Server]Column 'ArchiveDistJobs.ID' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause
Mein Ansatz bis jetzt ist
Select
ComputerName,
mac(LastModTime) as MAX_DATUM
From <TABLE>
Group By
ComputerName
Wie binde ich nun noch die anderen Spalten ein ?
Wie Result
immer ein , dahinter, * steht für allePHP-Code:Select
spalte1,
spalte2,
spalte3,
ComputerName,
mac(LastModTime) as MAX_DATUM
From <TABLE>
Group By
ComputerName
computer tun nur das was man ihnen sagt, meistens
Hallo,
Fehlermeldung bei Abfrage:
[Microsoft][ODBC SQL Server Driver][SQL Server]Column '<TABLENAME.LastModTime' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clauseCode:SELECT ComputerName, LastModTime, result, max(LastModTime) as MAXDATUM FROM <TABLENAME> Group By ComputerName
Ich benutze AnySQL Maestro für die Abfragen, falls das von wichtigkeit ist.
Lieben Gruß
Marcus
was passiert wenn du group by weglässt?
computer tun nur das was man ihnen sagt, meistens
wenn ich das ohne GROUP so schreibe
bekomme ich die Gleiche Fehlermeldung wie davor, nur mit dem Feld COmputerName.Code:SELECT ComputerName, max(LastModTime) as MAXDATUM, result, FROM <TABLENAME>
Benutze ich
also ohne max() dann zeigt er mir die Datensätze an.Code:SELECT ComputerName, LastModTime, result, FROM <TABLENAME>
der letzte select bekommt kein , dahinter
computer tun nur das was man ihnen sagt, meistens
ist nur flüchtigkeitsfehler.
Wie ich normale Abfragen schreibe ist mir klar aber nicht so eine wie auf die 3 Datensätze im Screenshot gezielt (aktuellste Datum und zugehöriger computername + resultmeldung)
hat sich erledigt. Lösungsansatz wöre
Danke noch einmal an alle helfenden.Code:SELECT * FROM TABLE WHERE LastModTime = ( SELECT max(lastmodtime) FROM TABLE AS t1 Where ComputerName = ArchiveDistJobs.ComputerName )
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)