Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gridview sqldatasource的查询_Sql_Sql Server - Fatal编程技术网

Gridview sqldatasource的查询

Gridview sqldatasource的查询,sql,sql-server,Sql,Sql Server,在我的asp.net+vb+SQLWeb中。我有一个查询,模式在 我目前正在使用: with T1 as ( SELECT KNO, Pl, case when KDPR in (4,5) then 'Jr Supdt' when KDPR >= 6 then 'Others' else '?' end as rank, Status from STAFF ) SELECT Pl, rank, Held= (Present+AL

在我的asp.net+vb+SQLWeb中。我有一个查询,模式在

我目前正在使用:

with T1 as (
SELECT KNO, Pl, case when KDPR in (4,5) then 'Jr Supdt' 
                     when KDPR >= 6 then 'Others' else '?' end as rank,
       Status
  from STAFF
)
SELECT Pl, rank, Held= (Present+AL+CL), Present, AL, CL
  from T1 pivot (Count(KNO) for Status in (Present, AL, CL)) as P
  order by Pl desc, rank desc;
产生:

| PL | RANK | HELD | PRESENT | AL | CL | |------|----------|------|---------|----|----| | SN | Others | 1 | 0 | 0 | 1 | | SN | Jr Supdt | 2 | 1 | 1 | 0 | | SH | Others | 1 | 0 | 0 | 1 | | SH | Jr Supdt | 1 | 0 | 1 | 0 | | Offr | ? | 3 | 2 | 1 | 0 | | HS | Others | 1 | 0 | 1 | 0 | | HS | Jr Supdt | 1 | 1 | 0 | 0 | |PL |等级|保持|现在| AL | CL| |------|----------|------|---------|----|----| |SN |其他| 1 | 0 | 0 | 1| |SN | Jr Supdt | 2 | 1 | 1 | 0| |SH |其他| 1 | 0 | 0 | 1| |SH | Jr Supdt | 1 | 0 | 1 | 0| |主任|?|3 | 2 | 1 | 0 | |HS |其他| 1 | 0 | 1 | 0| |HS | Jr Supdt | 1 | 1 | 0 | 0| 我想问两个不同的问题

  • 正如我在我的模式中提到的,没有Offr Engr的查询输出(Offr Engr不应该出现在结果输出输出中),但序列应该是Jr Engr,然后是Others
  • 输出与主任工程师(输出顺序为:主任工程师、Jr Supdt和其他人。我为公司中不同级别的人员使用代码
  • KDPR 1-3为主任工程师,KDPR 4-5为Jr Supdt,KDPR 6及以上为其他

    with T1 as (
    SELECT KNO, Pl, case 
        when KDPR in (1,2,3) then 'Offr Engr' 
        when KDPR in (4,5) then 'Jr Supdt' 
        when KDPR >= 6 then 'Others' else '?' end as rank,
        Status
    from STAFF
    )
    SELECT Pl, rank, Held= (Present+AL+CL), Present, AL, CL
        from T1 pivot (Count(KNO) for Status in (Present, AL, CL)) as P
        WHERE rank <> 'Offr Engr'
        order by Pl desc, rank desc;
    

    以上问题的答案是关于问题2:据我所知,您希望在
    rank
    列上定制订单。

    您能详细说明您的要求吗。
    with T1 as (
    SELECT KNO, Pl, case 
                         when KDPR in (1,2,3) then 'Offr Engr' 
                         when KDPR in (4,5) then 'Jr Supdt' 
                         when KDPR >= 6 then 'Others' else '?' end as rank,
           Status
      from STAFF
    )
    SELECT Pl, rank, Held= (Present+AL+CL), Present, AL, CL
      from T1 pivot (Count(KNO) for Status in (Present, AL, CL)) as P
      order by
        CASE rank WHEN 'Offr Engr' THEN 1
          WHEN 'Jr Supdt' THEN 2
          WHEN 'Others' THEN 3 END;