对于每个订单号,我需要选择最大记录,然后选择每条记录的最大数量。
我只想要一行,显示出来。
到目前为止,这是我的代码,如何选择我需要的内容?
SELECT number, record, order
FROM Table1
答案 0 :(得分:2)
如果数字并不总是增加,因此每个记录组中可能有不同的MAx,你必须分两步完成,即首先得到MAX(记录),然后得到MAX(数字)。
SELECT T.[Order], Max(Number) AS MaxNumber, MaxRecord
FROM
(
SELECT [Order], Max(Record) AS MaxRecord
FROM Table1
GROUP By [ORDER]
) T
INNER JOIN Table1 T1 ON T.[Order] = T1.[Order] AND T.MaxRecord = T1.Record
GROUP By [ORDER]
答案 1 :(得分:0)
订单确实不是一个好的列名,因为它是一个保留字。
SELECT max(number), max(record), order
FROM Table1
group by order
这可能不对,我需要澄清一下。您的问题有点令人困惑......这将返回每个订单号的最大数量和记录。您是否在参考最大数量时寻找最大记录? IE:
555 777 1
666 555 1
在这种情况下,您希望看到666 777 1还是555 777 1?
答案 2 :(得分:0)
假设您的表名为Table1
,以下内容应该可以为您提供所需内容:
SELECT MAX(number),
A.record,
[order]
FROM Table1 A
INNER JOIN ( SELECT MAX(record) record
FROM Table1) B ON A.record = b.record
GROUP BY A.record, [order]
这将有效地找到最大record
,然后返回此number
的最大record
。
答案 3 :(得分:0)
嗨,这是获得结果的另一种方法
select MAX(t.number),MAX(t.record),t.ORDERNo from @table t
INNER JOIN @table tt
ON tt.ORDERNo = t.ORDERNo
AND tt.Number = t.Number
AND t.Record = tt.Record
GROUP BY t.ORDERNo