根据SQL Server中的条件从计数中进行计数

程序员2015

我的数据库中有4个表。

  1. StudentsIdno, Name, CourseId

样本数据:

Idno    Name    CourseId
------------------------
-101123456  Vijay   101
-101123457  John    102
-101123458  Sam 101
-101123459  Arvind  102
-101123460  Smith   101
  1. CoursesCourseId, CourseNo, CourseName, StreamId

样本数据:

CourseId    CourseNo     CourseName StreamId
------------------------------------------
-101    53245   C   1
-102    53245   C++ 2
  1. StreamsStreamId, StreamName

样本数据:

StreamId    StreamName  
---------------------------
-1          Engineering
-2          Medical
  1. BookingBId, Idno, BStatus

样本数据:

Bid     Idno        BStatus
--------------------------------
-1110   101123456   Confirmed
-1111   101123456   Confirmed
-1112   101123457   Confirmed
-1113   101123458   Confirmed
-1114   101123459   Confirmed
-1115   101123460   Confirmed
-1116   101123456   Confirmed
-1117   101123457   Confirmed
-1118   101123458   Confirmed
-1119   101123459   Confirmed
-1119   101123460   Cancelled

我在生成以下输出时遇到问题

SNo Stream        BookedOnce BookedTwice NonBooked
1    Engineering     2           3         0
2    Medical         3           1          1

谢谢

安多玛

我认为这需要两步过程。首先,计算每个学生流的预订数量。然后,按每个流计算预订一,两或零的学生数量。

这是一个示例,其中包含内部查询的第一步:

select  StreamId
,       StreamName
,       sum(case when Bookings = 1 then 1 else 0 end) as BookedOnce
,       sum(case when Bookings = 2 then 1 else 0 end) as BookedTwice
,       sum(case when Bookings = 0 then 1 else 0 end) as NoneBooked
from    (
        select  str.StreamId
        ,       str.StreamName
        ,       s.Idno
        ,       count(b.BId) as Bookings
        from    Students s
        left join
                Booking b
        on      b.Idno = s.Idno
        left join
                Courses c
        on      c.CourseId = s.CourseId
        left join
                Streams str
        on      str.StreamId = c.StreamId
        group by        
                str.StreamId
        ,       str.StreamName
        ,       s.Idno
        ) BookingsPerStudentPerStream
group by        
        StreamId
,       StreamName

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据SQL Server中的条件从计数中进行计数

来自分类Dev

如何根据 SAS/SQL 中的行值进行条件计数?

来自分类Dev

如何在SQL Server中进行屏幕计数

来自分类Dev

在小型SQL Server查询中进行选择和计数

来自分类Dev

根据条件对记录进行计数

来自分类Dev

根据条件对记录进行计数

来自分类Dev

从SQL Server中的2列进行计数

来自分类Dev

基于SQL Server中的列进行计数

来自分类Dev

根据条件对DataFrame中的值进行计数-太慢

来自分类Dev

根据可选过滤条件在Excel中对行进行计数

来自分类Dev

根据从联接评估的条件对mysql表中的字段进行计数

来自分类Dev

如何根据特定条件对SSIS中的行进行计数?

来自分类Dev

SQL Oracle中按行进行条件条件项计数

来自分类Dev

如何根据sql server中的where条件获取表中所有列的值的不同计数?

来自分类Dev

根据 SQL 按顺序对表中的每个出现进行计数

来自分类Dev

根据条件对列的每个元素进行计数

来自分类Dev

mongo组并根据条件进行计数

来自分类Dev

如何根据2个条件进行计数

来自分类Dev

使用sqldf根据多个条件进行计数

来自分类Dev

根据多个条件对行进行计数

来自分类Dev

如何根据条件进行分组和计数

来自分类Dev

根据涉及不同表的条件进行计数

来自分类Dev

如何使用条件对SQL(Oracle)中的多列进行计数?

来自分类Dev

如何在SQL Server中进行选择时获得单选的计数

来自分类Dev

在where子句中使用每个子查询在SQL Server中进行计数

来自分类Dev

SQL中的条件计数返回

来自分类Dev

如何基于SQL Server中的多个列进行计数?

来自分类Dev

如何根据表格中的标准进行计数

来自分类Dev

使用左联接查询并在select中进行计数在MySQL中有效,但在MS SQL Server 2012中无效

Related 相关文章

  1. 1

    根据SQL Server中的条件从计数中进行计数

  2. 2

    如何根据 SAS/SQL 中的行值进行条件计数?

  3. 3

    如何在SQL Server中进行屏幕计数

  4. 4

    在小型SQL Server查询中进行选择和计数

  5. 5

    根据条件对记录进行计数

  6. 6

    根据条件对记录进行计数

  7. 7

    从SQL Server中的2列进行计数

  8. 8

    基于SQL Server中的列进行计数

  9. 9

    根据条件对DataFrame中的值进行计数-太慢

  10. 10

    根据可选过滤条件在Excel中对行进行计数

  11. 11

    根据从联接评估的条件对mysql表中的字段进行计数

  12. 12

    如何根据特定条件对SSIS中的行进行计数?

  13. 13

    SQL Oracle中按行进行条件条件项计数

  14. 14

    如何根据sql server中的where条件获取表中所有列的值的不同计数?

  15. 15

    根据 SQL 按顺序对表中的每个出现进行计数

  16. 16

    根据条件对列的每个元素进行计数

  17. 17

    mongo组并根据条件进行计数

  18. 18

    如何根据2个条件进行计数

  19. 19

    使用sqldf根据多个条件进行计数

  20. 20

    根据多个条件对行进行计数

  21. 21

    如何根据条件进行分组和计数

  22. 22

    根据涉及不同表的条件进行计数

  23. 23

    如何使用条件对SQL(Oracle)中的多列进行计数?

  24. 24

    如何在SQL Server中进行选择时获得单选的计数

  25. 25

    在where子句中使用每个子查询在SQL Server中进行计数

  26. 26

    SQL中的条件计数返回

  27. 27

    如何基于SQL Server中的多个列进行计数?

  28. 28

    如何根据表格中的标准进行计数

  29. 29

    使用左联接查询并在select中进行计数在MySQL中有效,但在MS SQL Server 2012中无效

热门标签

归档