sql 查询优化:COUNT(*)改成COUNT(1)

This commit is contained in:
2025-11-06 18:10:29 +08:00
parent c54c470818
commit c7187ebd36
16 changed files with 48 additions and 48 deletions
+1 -1
View File
@@ -95,7 +95,7 @@ namespace FineUIPro.Web.DataShow
)f WHERE 1=1 ";
#region
var strSqlSum = @"select Count(*)as allCount from(
var strSqlSum = @"select COUNT(1)as allCount from(
select ROW_NUMBER() OVER(Order by ProjectCode desc) AS RowNumber,
* from (
select
@@ -38,11 +38,11 @@ namespace FineUIPro.Web.DataShow
private void BindGrid()
{
string strSql = @"SELECT P.ProjectId,P.ProjectCode,P.ProjectName
,(SELECT COUNT(*) FROM Project_Installation AS A WHERE A.ProjectId =P.ProjectId AND A.SuperInstallationId='0') AS count1
,(SELECT COUNT(*) FROM WBS_UnitWork AS B WHERE B.ProjectId =P.ProjectId) AS count2
,(SELECT COUNT(*) FROM WBS_DivisionProject AS C WHERE C.ProjectId =P.ProjectId AND C.SubItemType= '1') AS count3
,(SELECT COUNT(*) FROM WBS_DivisionProject AS D WHERE D.ProjectId =P.ProjectId AND D.SubItemType= '3') AS count4
,(SELECT COUNT(*) FROM WBS_BreakdownProject AS E WHERE E.ProjectId =P.ProjectId ) AS count5
,(SELECT COUNT(1) FROM Project_Installation AS A WHERE A.ProjectId =P.ProjectId AND A.SuperInstallationId='0') AS count1
,(SELECT COUNT(1) FROM WBS_UnitWork AS B WHERE B.ProjectId =P.ProjectId) AS count2
,(SELECT COUNT(1) FROM WBS_DivisionProject AS C WHERE C.ProjectId =P.ProjectId AND C.SubItemType= '1') AS count3
,(SELECT COUNT(1) FROM WBS_DivisionProject AS D WHERE D.ProjectId =P.ProjectId AND D.SubItemType= '3') AS count4
,(SELECT COUNT(1) FROM WBS_BreakdownProject AS E WHERE E.ProjectId =P.ProjectId ) AS count5
FROM Base_Project AS P
WHERE P.ProjectState = 1 ";
List<SqlParameter> listStr = new List<SqlParameter>();
@@ -64,19 +64,19 @@ namespace FineUIPro.Web.DataShow
}
else if (rbType.SelectedValue == "3")
{
strSql += " AND (SELECT COUNT(*) FROM QualityAudit_PersonQuality AS Q LEFT JOIN Base_Certificate AS Cer ON Q.CertificateId =Cer.CertificateId WHERE Q.PersonId = Person.PersonId AND IsRegisterHSSE =1) > 0";
strSql += " AND (SELECT COUNT(1) FROM QualityAudit_PersonQuality AS Q LEFT JOIN Base_Certificate AS Cer ON Q.CertificateId =Cer.CertificateId WHERE Q.PersonId = Person.PersonId AND IsRegisterHSSE =1) > 0";
}
else if (rbType.SelectedValue == "4")
{
strSql += " AND (SELECT COUNT(*) FROM QualityAudit_PersonQuality AS Q LEFT JOIN Base_Certificate AS Cer ON Q.CertificateId =Cer.CertificateId WHERE Q.PersonId = Person.PersonId AND CertificateType ='A') > 0";
strSql += " AND (SELECT COUNT(1) FROM QualityAudit_PersonQuality AS Q LEFT JOIN Base_Certificate AS Cer ON Q.CertificateId =Cer.CertificateId WHERE Q.PersonId = Person.PersonId AND CertificateType ='A') > 0";
}
else if (rbType.SelectedValue == "5")
{
strSql += " AND (SELECT COUNT(*) FROM QualityAudit_PersonQuality AS Q LEFT JOIN Base_Certificate AS Cer ON Q.CertificateId =Cer.CertificateId WHERE Q.PersonId = Person.PersonId AND CertificateType ='B') > 0";
strSql += " AND (SELECT COUNT(1) FROM QualityAudit_PersonQuality AS Q LEFT JOIN Base_Certificate AS Cer ON Q.CertificateId =Cer.CertificateId WHERE Q.PersonId = Person.PersonId AND CertificateType ='B') > 0";
}
else if (rbType.SelectedValue == "6")
{
strSql += " AND (SELECT COUNT(*) FROM QualityAudit_PersonQuality AS Q LEFT JOIN Base_Certificate AS Cer ON Q.CertificateId =Cer.CertificateId WHERE Q.PersonId = Person.PersonId AND CertificateType ='C') > 0";
strSql += " AND (SELECT COUNT(1) FROM QualityAudit_PersonQuality AS Q LEFT JOIN Base_Certificate AS Cer ON Q.CertificateId =Cer.CertificateId WHERE Q.PersonId = Person.PersonId AND CertificateType ='C') > 0";
}
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
@@ -253,14 +253,14 @@ namespace FineUIPro.Web.DataShow
private void OutputSummaryData()
{
string strSql = @"select ProjectId,ProjectCode, ProjectName ,
isnull((select count(*) from Hazard_HazardSelectedItem as a
isnull((select count(1) from Hazard_HazardSelectedItem as a
where (a.IsStart=1 or a.State = '1') and a.ProjectId=p.ProjectId
and (a.HazardLevel='1' or a.HazardLevel=(select top 1 RiskLevelId from Base_RiskLevel where RiskLevel='1'))),0) as Count1,
isnull((select count(*) from Hazard_HazardSelectedItem as a where (a.IsStart=1 or a.State = '1') and a.ProjectId=p.ProjectId
isnull((select count(1) from Hazard_HazardSelectedItem as a where (a.IsStart=1 or a.State = '1') and a.ProjectId=p.ProjectId
and (a.HazardLevel='2' or a.HazardLevel=(select top 1 RiskLevelId from Base_RiskLevel where RiskLevel='2'))),0) as Count2,
isnull((select count(*) from Hazard_HazardSelectedItem as a where (a.IsStart=1 or a.State = '1') and a.ProjectId=p.ProjectId
isnull((select count(1) from Hazard_HazardSelectedItem as a where (a.IsStart=1 or a.State = '1') and a.ProjectId=p.ProjectId
and (a.HazardLevel='3' or a.HazardLevel=(select top 1 RiskLevelId from Base_RiskLevel where RiskLevel='3'))),0) as Count3,
isnull((select count(*) from Hazard_HazardSelectedItem as a where (a.IsStart=1 or a.State = '1') and a.ProjectId=p.ProjectId
isnull((select count(1) from Hazard_HazardSelectedItem as a where (a.IsStart=1 or a.State = '1') and a.ProjectId=p.ProjectId
and (a.HazardLevel='4' or a.HazardLevel=(select top 1 RiskLevelId from Base_RiskLevel where RiskLevel='4'))),0) as Count4
from Base_Project as P where ProjectState =1 ";
List<SqlParameter> listStr = new List<SqlParameter>();