sql 查询优化:COUNT(*)改成COUNT(1)
This commit is contained in:
@@ -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>();
|
||||
|
||||
Reference in New Issue
Block a user