将多个SQL Server查询转换为一个

时间:2016-01-15 20:19:38

标签: sql-server

我有一个页面询问用户对某个主题的意见。然后他们的回答被保存到表格中。我想要做的是检查有多少用户选择了1,2,3和4选项。

我现在拥有多个成功运行的T-SQL查询,但我相信我编写的代码的简化版本。如果有人可以将我的查询简化为单个查询,我将不胜感激。谢谢。

这里是数据库表中的数据样本
enter image description here

$sql4 = "SELECT COUNT(CO) FROM GnAppItms WHERE CO='1' AND MountID='".$mountID."'";
$stmt4 = sqlsrv_query($conn2, $sql4);
$row4 = sqlsrv_fetch_array($stmt4);

$sql5="SELECT COUNT(CO) FROM GnAppItms WHERE CO='2' AND MountID='".$mountID."'";
$stmt5=sqlsrv_query($conn2,$sql5);
$row5=sqlsrv_fetch_array($stmt5);

$sql6="SELECT COUNT(CO) FROM GnAppItms WHERE CO='3' AND MountID='".$mountID."'";
$stmt6=sqlsrv_query($conn2,$sql6);
$row6=sqlsrv_fetch_array($stmt6);

$sql7="SELECT COUNT(CO) FROM GnAppItms WHERE CO='4' AND MountID='".$mountID."'";
$stmt7=sqlsrv_query($conn2,$sql7);
$row7=sqlsrv_fetch_array($stmt7);

1 个答案:

答案 0 :(得分:0)

您可以在sql server

中使用group by来完成

示例:

create table a
(id int,
 mountid nvarchar(100),
 co int,
)

insert into a values (1,'aa',1)
insert into a values (2,'aa',2)
insert into a values (3,'aa',1)
insert into a values (4,'aa',2)
insert into a values (5,'aa',3)

查询

select co,count(co)as countofco from a 
where mountid='aa'
group by 
co

结果

co  countofco
1   2
2   2
3   1

注意:在编写SQL查询时要小心SQL注入,因此请始终使用参数化查询。您可以编辑上面的示例代码,并将其作为参数化查询以防止sql注入