| 
	
 | 
 Posted by Bethany Holliday on 06/18/32 11:34 
Hi All, 
 
I'm hoping someone can help me.  I think I'm missing something very 
basic.  I'm trying to put a clustered index on a view that I have 
created.  I keep getting the error: 
 
Server: Msg 8668, Level 16, State 1, Line 1 
An index cannot be created on the view 'cew_avwage_uscnty' because the 
select list of the view contains a non-aggregate expression. 
 
Here is the create view statement: 
 
CREATE view dbo.cew_avwage_uscnty 
with schemabinding 
 as 
select  statefips, countyfips, naics_code, sum(disc * 0) as disc, 
data_year, sum(qtr_payroll)/((sum(emp1+emp2+emp3))/12) as avwage 
from dbo.qcew_own_n where year= '2004'  
and (ownership = '0' 
and (naics_code like '__' or naics_code like '__-__') 
or (ownership = '5' and naics_code = '10')) 
and countyfips <> '999' 
and naics_code <> '99' 
and ((disc = '0') or (disc <> '0' and (emp1 <> 0 or emp2 <> 0 or emp3 <> 
0))) 
group by statefips, countyfips, naics_code, data_year 
 
Here is the create index statement I am using: 
 
create unique clustered index main_cdx 
on dbo.cew_avwage_uscnty (statefips, countyfips, naics_code, year) 
 
Each field that I have listed in the select statement MUST appear in the 
view.  The disc field needs to be set = 0 and the data_year field needs 
to be set = 2004.  Initially I had select statement for disc and 
data_year set as, disc = '0', year = '2004' .. but thought this was 
giving me my problem.  I changed it and am still getting the same error? 
Is my problem because of the fields that I am grouping by?  Any advice 
would be very much appreciated.  I'm trying to avoid creating an extract 
table, as these data are updated regularly - so I would like to only 
update the base table and have the view refresh itself. 
 
Thanks again! 
 
Bethany  
 
 
 
 
*** Sent via Developersdex http://www.developersdex.com ***
 
  
Navigation:
[Reply to this message] 
 |