Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.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
编写特定的SQL Group By语句_Sql_Asp.net - Fatal编程技术网

编写特定的SQL Group By语句

编写特定的SQL Group By语句,sql,asp.net,Sql,Asp.net,我有一张表格,我在这里截屏并上传了图片: 我需要创建一个sql查询,计算具有以下比萨饼数量的订单数量:1、2、3、4、5、6和6以上 我尝试了许多SQL语句,但没有找到正确的 我目前的尝试是 <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectPizza %>" SelectCo

我有一张表格,我在这里截屏并上传了图片:

我需要创建一个sql查询,计算具有以下比萨饼数量的订单数量:1、2、3、4、5、6和6以上

我尝试了许多SQL语句,但没有找到正确的

我目前的尝试是

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:ConnectPizza %>" 
            SelectCommand="Select '1' AS Caption, Count(quantity) AS Count FROM orders WHERE quantity = 1 
            UNION ALL
            Select '2' AS Caption, Count(quantity) AS Count FROM orders WHERE quantity = 2
            UNION ALL
            Select '3' AS Caption, Count(quantity) AS Count FROM orders WHERE quantity = 3
            UNION ALL
            Select '4' AS Caption, Count(quantity) AS Count FROM orders WHERE quantity = 4
            UNION ALL
            Select '5' AS Caption, Count(quantity) AS Count FROM orders WHERE quantity = 5
            UNION ALL
            Select '6' AS Caption, Count(quantity) AS Count FROM orders WHERE quantity = 6
            UNION ALL
            Select 'Above 7' AS Caption, Count(quantity) AS Count FROM orders WHERE quantity > 7">
        </asp:SqlDataSource>  
但它不会成功

我也想制作一个图表,但即使我的sql语句成功了,我也不确定我会为我的X和Y值成员输入什么


任何帮助都将不胜感激。

这将按照您想要的方式分解您的数量,然后将数量按1-7分组。我没有在group by中使用该案例,因为许多数据库都不允许使用该案例

Select o.quantity AS Caption, Count(o.quantity) AS Count 
FROM (SELECT CASE WHEN quantity < 7 THEN Quantity ELSE 7 END) quantity from orders) o 
group by o.quantity

这会让你接近,但会将所有7+数量标记为“7”

select  case when quantity < 7 then quantity else 7 end,
        count(*)
from    orders
group by case when quantity < 7 then quantity else 7 end

要获得正确的7+标签,您需要确切地知道您使用的是哪种SQL变体

您希望得到什么输出?另外一个非ASP经典问题,如果您进一步解释,效果会更好