如何计算SQL中存储在一个单元格中的不同值?

时间:2013-08-26 10:50:10

标签: asp.net sql sql-server

我有一项调查,大多数问题都是肯定或没有答案。我在asp.net中创建了一个页面,所有问题都是单选按钮,答案与.net中的文本相同。

的.aspx:

asp:RadioButton ID="Money1" runat="server" GroupName="Money" Text="Yes" 
asp:RadioButton ID="Money2" runat="server" GroupName="Money" Text="No"  

.aspx.cs:

 if (Money1.Checked)
                { cmd.Parameters.Add(new SqlParameter("@Money", Money1.Text)); }

 else if (Money2.Checked)
                { cmd.Parameters.Add(new SqlParameter("@Money", Money2.Text)); }

SQL字段:

Money   nvarchar(50)    Checked

现在一切正常,结果按照要求存储在数据库中。

但是我必须做一个报告,我试图让SQL查看计算是和否问题的结果,具体来说,有多少人回答是和否? 如您所见,两个结果都存储在一个单元格中。

那么,我应该使用什么正确的SQL语句来捕获这个不同结果的答案计数。

2 个答案:

答案 0 :(得分:0)

从您的aspx页面运行查询,例如

Select count(*) from [tablename] where Money='Yes';
Select count(*) from [tablename] where Money='No';

第一个应该归还你。人们回答,其次是

答案 1 :(得分:0)

SELECT Money,
       Count(*)
FROM   [table]
GROUP BY Money

GROUP BY语句将根据您为其分组的字段值将结果分组。 在此示例中,Money上的分组意味着所有Yes的实例将组合在一起,所有No的实例也将组合在一起,然后单独计算。

值得注意的是,如果您对大多数问题使用“是/否”答案,那么位字段是将数据存储在数据库中的最有效方式。