0
寻找一个SQL解决下面的问题SQL服务器:有多个标准
返回
USER
和NUMBER
组合WHERE PRIORITY = MIN(PRIORITY)
[NULL
相当于MAX(PRIORITY + 1)
] ...在领带的情况下PRIORITY
选择值,打破使用最低LINEITEM
字段:
USER,
LINEITEM,
NUMBER,
PRIORITY
个
值:( 'X' 表示期望的组合)
USER LINEITEM NUMBER PRIORITY
-------------------------------------
1 1 12345 NULL
1 2 23456 2
1 3 34567 1 X
2 1 9876 3
2 2 98765 1 X
2 3 12345 2
2 4 23456 1
3 1 23456 NULL X
3 2 12345 NULL
4 1 34567 NULL
4 2 45678 NULL
4 3 12345 1 X
4 4 12345 2
4 5 23456 1
预先感谢。
针对PM 77-1,
我目前的方法:
SELECT table1.user,table1.number
FROM table1
JOIN (
SELECT user,
CAST(MIN((COALESCE(priority,999) *
(10^(5 - LEN(COALESCE(CAST(priority AS VARCHAR),'999'))))) +
lineitem) AS VARCHAR) AS selector
FROM table1 GROUP BY user
) AS table2
ON table1.user = table2.user
AND table1.lineitem = CAST(RIGHT(table2.selector, 1) AS int)
ORDER BY table1.user;
确定。什么阻止你创建这样的查询?你卡在哪里? –
我试图用SELF-JOIN和NOT EXISTS执行任务,但一直得到不准确的结果。 我目前的解决方案是非常不雅,我想了解如何使用集合操作来完成它。 –
请使用[编辑]将您的代码添加到您的问题中。 –