Sql 用总数计算行数

Sql 用总数计算行数,sql,sql-server,sql-server-2008,stored-procedures,Sql,Sql Server,Sql Server 2008,Stored Procedures,在tbl部门,我试图编写一个存储过程来显示输出,如下所示,在这里我可以根据以下条件找到每行的计数: 总数=100 总数>100、200和300 set@select='选择count(*)作为订单,按tbl.部门从tbl组中选择sum(tbl.费用)作为总计' 那么,如何基于@select语句动态地获得上述4种条件的输出呢 我认为您只需要条件聚合: select sum(case when total = 100 then 1 else 0 end) as condition1,

在tbl部门,我试图编写一个存储过程来显示输出,如下所示,在这里我可以根据以下条件找到每行的计数:

  • 总数=100
  • 总数>100、200和300

    set@select='选择count(*)作为订单,按tbl.部门从tbl组中选择sum(tbl.费用)作为总计'


  • 那么,如何基于@select语句动态地获得上述4种条件的输出呢

    我认为您只需要条件聚合:

    select sum(case when total = 100 then 1 else 0 end) as condition1,
           sum(case when total > 100 and total <= 200 then 1 else 0 end) as condition2,
           sum(case when total > 200 and total <= 300 then 1 else 0 end) as condition3,
           sum(case when total > 300 then 1 else 0 end) as condition4
    from department d;
    
    选择sum(当total=100时为1,否则为0结束)作为条件1,
    求和(总数大于100,总数为200,总数为300,则为1,否则为0)作为条件4
    d部;
    
    希望对您有所帮助, 选择总计, 总和(当总数=100时,则为NumberOfOrders\u Created end)作为“条件1”,
    总和(当total>100,total 200,total 200,total电池电量几乎耗尽时——看看GROUP BY和HAVINGhello mike,我试图通过调用存储过程来显示如上所示的输出。它不是一个表。查询本身非常简单。几乎不可能的是,试图找出您想要的是什么,因为您没有给我们任何数据。)这就是@MikeK想要说的。看看这篇文章,了解询问t-sql问题的方法。