ist Ich habe eine Tabelle mit einer Struktur, wie untenWie kann ich einen max von Spalte auswählen, welche Art eindeutige Kennung
create table shpro(
Gid uniqueidentifier,
id int,
prod varchar(30),
orderdate datetime,
shipdate datetime
)
ich mag das Entfernen den max des bestelldatum und ShipDate bekommen und auch die doppelten Daten i die Abfrage als versuchte unten
select
MAX(p1.Gid) Gid,
MAX(p1.id) id,
MAX(p1.prod) prod,
MAX(p1.orderdate) orderdate,
MAX(p2.shipdate) shipdate
from shpro p1 inner join shpro p2
on p1.id=p2.id
where cast(p1.orderdate as DATE)>GETDATE() and cast(p1.shipdate as DATE)<GETDATE()-1
group by p1.prod
ich den Fehler Operand Datentyp erhalten haben uniqueidentifier
für max
Betreiber ungültig ist.
, was ich habe versucht, die Spalte mit uniqueidentifier
-varchar
OR BINARY
zu konvertieren habe ich versucht, die Abfrage als Gebrüll
select
MAX(cast(p1.Gid as varchar(36))) Gid,
MAX(p1.id) id,
MAX(p1.prod) prod,
MAX(p1.orderdate) orderdate,
MAX(p2.shipdate) shipdate
from shpro p1 inner join shpro p2
on p1.id=p2.id
where cast(p1.orderdate as DATE)>GETDATE() and cast(p1.shipdate as DATE)<GETDATE()-1
group by p1.prod
es mir ein Ergebnis geben, aber es ist ein falsches Ergebnis
ich eine haben Idee mit CTE
aber ich will etwas ohne zu verwenden CTE
Kann mir jemand helfen?
Auswahl MAX (p1.Gid) und MAX (p1.id) doesn Es scheint keinen Sinn zu machen, warum wählst du es aus? Sie möchten Aufträge mit maximalem Bestelldatum und Lieferdatum auswählen? –
nur um eine 'group by' zu verwenden, wenn ich das nicht benutzte ich kann keine' group by' ja zur zweiten 'query' machen es gibt mir ein Ergebnis zurück –
Sie wollen also eine einfache Abfrage + max für Daten , habe ich recht? –