编写特定的SQL Group By语句
我有一张表格,我在这里截屏并上传了图片: 我需要创建一个sql查询,计算具有以下比萨饼数量的订单数量:1、2、3、4、5、6和6以上 我尝试了许多SQL语句,但没有找到正确的 我目前的尝试是编写特定的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
<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经典问题,如果您进一步解释,效果会更好