我有一张桌子,比如说 dbo.Orders 我有一个查询:
SELECT Orders, COUNT(*) FROM dbo.Orders
GROUP BY Orders
结果是
Order1 7
Order2 4
Order3 6
Order4 5
Etc
每个订单号都有一个列 - OrderCounter。我想得到的是:
SELECT * COUNT(*) FROM dbo.Orders
WHERE Orders IN (Order1,Order2,Order3…. )
并通过 OrderCounter 中的某个值选择每个订单行 – 与相应订单相关的 max、max-1、max-2 等
Order1 MAX(Order1)
Order2 MAX(Order2)
Order3 MAX(Order3)
Order4 Max(Order4)
Etc
看来我的问题不容易表述。我有一个表,其中有两列——Item 和 ItemCounter,所以一个 Item 可以在表中多次出现:
1. Items ItemCounter ….n
2. Item1 1
3. Item2 1
4. Item2 2
5. Item3 1
6. Item3 2
这是我虚构的代码,当然它不起作用,但我希望它能显示我想要得到的东西。
SELECT * FROM Items
WHERE Item IN ('9108915', '9324853', '8029717') AND
IN (MAX(ItemCounter1) for Item1,
MAX(ItemCounter2) for Item2,
MAX(ItemCounter3) for Item3)