【发布时间】:2015-08-06 13:07:43
【问题描述】:
大家好,我正在尝试根据这些条件从一系列数据中选择最小值或最大值:
- 如果 setuptime 和 processtime cols 都是 0 选择 MIN(oprNum) (操作尚未开始,请先获取 oprnum)
- 如果 setuptime 和 process time 不为 0,则获取 max oprnum(主动操作)。
基于其中任何一个,我想要一行...请参阅随附的数据示例。谢谢!这是一个更大的查询的一部分,所以我需要每个 prodid 1 个输出行...
+------------+--------+---------+--------------------+--------------------+
| ProdId | OprNum | Company | SetupTime | ProcessTime |
+------------+--------+---------+--------------------+--------------------+
| 12M0003381 | 10 | 12 | 1.3400000000000000 | 1.6100000000000000 |
+------------+--------+---------+--------------------+--------------------+
| 12M0003381 | 10 | 12 | 0.0000000000000000 | 0.0000000000000000 |
+------------+--------+---------+--------------------+--------------------+
| 12M0003381 | 15 | 12 | 1.0000000000000000 | 0.0000000000000000 |
+------------+--------+---------+--------------------+--------------------+
| 12M0003381 | 50 | 12 | 0.0000000000000000 | 0.0000000000000000 |
+------------+--------+---------+--------------------+--------------------+
| 12M0003381 | 60 | 12 | 0.0000000000000000 | 0.0000000000000000 |
+------------+--------+---------+--------------------+--------------------+
| 12M0003381 | 60 | 12 | 0.0000000000000000 | 0.0000000000000000 |
+------------+--------+---------+--------------------+--------------------+
| 12M0003381 | 70 | 12 | 0.0700000000000000 | 0.0400000000000000 |
+------------+--------+---------+--------------------+--------------------+
| 12M0003381 | 70 | 12 | 0.0000000000000000 | 0.0000000000000000 |
+------------+--------+---------+--------------------+--------------------+
【问题讨论】:
-
你考虑过使用 CASE 语句吗?
-
我尝试了 case 语句,但似乎无法获得正确的输出(1 行)
-
请发布您尝试过的内容:D
-
你可以试试解析函数 OVER msdn.microsoft.com/en-us/library/ms189461.aspx
标签: sql-server sql-server-2012