0
列的最大我有一個表,其結構爲波紋管如何選擇哪種類型是唯一標識符
create table shpro(
Gid uniqueidentifier,
id int,
prod varchar(30),
orderdate datetime,
shipdate datetime
)
我想訂購日期和SHIPDATE的最大值,並刪除重複數據我試圖查詢作爲波紋管
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
我已經得到了錯誤操作數的數據類型uniqueidentifier
是max
操作無效。
我所做的是試圖將柱uniqueidentifier
到varchar
OR BINARY
我試圖查詢作爲波紋管
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
它給我一個結果轉換,但它是一個錯誤的結果
我有一個想法使用CTE
但我想要的東西沒有使用CTE
有人可以幫助我嗎?
選擇MAX(p1.Gid)和MAX(p1.id)沒有按似乎沒有道理,爲什麼選擇它?你想選擇最大訂單和發貨日期的訂單嗎? –
只是爲了使用'group by'如果我沒有使用這個我瘦我不能做一個'group by'是第二個'query'這是返回結果 –
所以你想要一個簡單的查詢+最大日期, 我對嗎? –