我有两张桌子,学生和LOG。
每个学生的LOG表可能包含0个或更多记录。 LOG表中的记录按SUBTYPE列分类。 SUBTYPE的值为:'H','L1','L2','L3','M','P1','P2'和'Px'。
我正在尝试生成一个报告,该报告将列出每个学生姓名一次,以及LOG表中最严重的代码。
我自然会想到MAX(子类型),但这不起作用,因为我没有尝试选择子类型的实际最大字母数字值 - 我试图根据预定义的“SEVERITY”进行选择。严重性,BTW,没有存储在数据库中,所以我需要在查询内部以某种方式定义它。
例如......
STUDENTS TABLE
ID LAST_NAME FIRST_NAME
------------------------------------
2 Smith John
3 Jones Bob
4 Bower Jack
LOG TABLE
ID STUDENTSID SUBTYPE
------------------------------------
1 2 P1
2 2 M
3 2 L1
4 3 L2
5 3 P2
6 3 H
实际上应将子类型值排序/排序为:
(From Least Severe)
1. P1
2. L1
3. M
4. L2
5. P2
6. H
7. L3
8. Px
(To Most Severe)
以下是我需要报告的内容。请注意,Jack Bower不在报告中,因为他在日志表中没有任何记录。
DESIRED REPORT OUTPUT:
John Smith --- M
Bob Jones ---- H
有人能指出我正确的方向吗?
答案 0 :(得分:1)
您需要使用var Result = client.PostAsync(APIURL, httpContent).Result;
if(Result.IsSuccessStatusCode)
{
var responseStr = Result.Content.ReadAsStringAsync();
dynamic jsonObject = JsonConvert.DeserializeObject<object>(responseStr.ToString());
}
函数相应地确定子类型的优先级。然后为每个学生选择第一行。
row_number
答案 1 :(得分:0)
order by
case subtype
when 'P1' then 1
when 'L1' then 2
when 'M' then 3
...
end