我需要一些帮助来返回每个OrderID的最大值。
示例我有一个具有OrderID的表,其中包括:A04-01,B17-10,C12-01等....我正在尝试选择哪里显示每个的最大数量信件。示例:A04-01是最低的,A17-01是字母A中最高的。所有这些都是在Oracle Procedure中构建的,但是我们摆脱了Oracle,所以我需要在Microsoft SQL Server中重新创建它。谢谢。
答案 0 :(得分:2)
Declare @YourTable table (OrderID varchar(25))
Insert into @YourTable values
('A04-01')
,('A17-10')
,('B17-10')
,('C12-01')
Select Letter = left(OrderID,1)
,MinVal = min(OrderID)
,MaxVal = max(OrderID)
From @YourTableYourTable
Group By left(OrderID,1)
返回
Letter MinVal MaxVal
A A04-01 A17-10
B B17-10 B17-10
C C12-01 C12-01
答案 1 :(得分:0)
如果OrderID
正是您提到的,请尝试以下方法:
WITH ABC
AS
(
Select OrderID, ROW_NUMBER()OVER(Partition by OrderID Order by OrderID desc) as Row_Indicator
From table
)
Select * From ABC
Where ABC.Row_Indicator = 1