您好,我正在尝试清理查询,并且有一行重复了六次。有没有办法在 SQL 中设置类似常量的东西?
这是该问题的一个示例:
select Distinct DSF.CityName,
( Select count (Distinct DSF1.IncdtKey)
from dbo.IncidentFile DSF1
Where DSF1.IncidentMostSevere in ('1', '2', '4', '5', '6')
and DSF1.CategoryKey in ('15', '01', '02', '03', '04', '05', '06')<-----
and DSF1.CityName = DSF.CityName) as 'Weapons Possession 11-12',
( Select count (Distinct DSF2.IncdtKey)
from dbo.IncidentFile DSF2
Where DSF2.IncidentMostSevere in ('7', '8', '9', '10', '11', '12')
and DSF2.CategoryKey in ('15', '01', '02', '03', '04', '05', '06') <-----
and DSF2.CityName = DSF.CityName) as 'Drugs Related 11-12',
( Select count (Distinct DSF3.IncdtKey)
from dbo.IncidentFile DSF3
Where DSF3.IncidentMostSevere in ('14', '15', '17', '20', '21', '22', '26')
and DSF3.CategoryKey in ('15', '01', '02', '03', '04', '05', '06') <-----
and DSF3.CityName = DSF.CityName) as 'Incident with Injury 11-12',
( Select count (Distinct DSF4.IncdtKey)
from dbo.IncidentFile DSF4
Where DSF4.IncidentMostSevere in ('16', '18', '19', '23', '24', '25')
and DSF4.CategoryKey in ('15', '01', '02', '03', '04', '05', '06') <-----
and DSF4.CityName = DSF.CityName) as 'Incident no Injury 11-12',
( Select count (Distinct DSF5.IncdtKey)
from dbo.IncidentFile DSF5
Where DSF5.IncidentMostSevere in ('3', '13', '29', '31', '32', '33')
and DSF5.CategoryKey in ('15', '01', '02', '03', '04', '05', '06') <-----
and DSF5.CityName = DSF.CityName) as 'Other reason for 11-12',
( Select count (Distinct DSF6.IncdtKey)
from dbo.IncidentFile DSF6
Where DSF6.CategoryKey in ('15', '01', '02', '03', '04', '05', '06') <-----
and DSF6.CityName = DSF.CityName) as 'Total Incidents'
from dbo.IncidentFile DSF
group by DSF.CityName
Order by DSF.CityName
谢谢