上帝的日子。
我使用MsSQl Server 2008;
代码:
$entersql="SELECT name
FROM (
SELECT name FROM
Hist_answer
WHERE id_city='$id_city' AND id_firm='$id_firm' AND id_service='$id_service'
) x
GROUP BY name
";
$enterres = sqlsrv_query($conn, $entersql, $params, $options);
while($i = sqlsrv_fetch_array($enterres, SQLSRV_FETCH_ASSOC))
{
if($inputby=='id_hist_answer'&&$typeby=='DESC'){$a--;}else{$a++;}
$name=($i['name']!='')? $i['name']:'0';
$sql11="SELECT
ha.unit as ha_unit,
ha.id_producer_goods as ha_id_producer_goods
FROM Hist_answer ha
WHERE ha.id_city='$id_city' AND ha.id_firm='$id_firm' AND ha.id_service='$id_service' AND ha.name='$name'";
$params = array();
$options = array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
$res11 = sqlsrv_query($conn, $sql11,$params,$options);
$row_count_ha = sqlsrv_num_rows($res11);
}
在这段代码中我做了:
1)我选择了所有唯一的name
(group by name
);
2)在第二个sql($ sql11)中,我找到每个name
的计数行。
请告诉我,当我能找到所有唯一的name
(group by name
)并计算每个唯一name
的行数时,我该怎么做? < / em>的
答案 0 :(得分:2)
您可以在一个声明中获得唯一名称及其计数:
SELECT name, count(name) AS records
FROM Hist_answer
WHERE id_city='$id_city'
AND id_firm='$id_firm'
AND id_service='$id_service'
GROUP BY name
答案 1 :(得分:0)
SELECT colname, count(colname) AS UniqueRecord_Count
FROM ascouser
GROUP BY colname
您可以列出您想要计算的列名,可以按照您的说法将Where子句用于过滤记录。