id1 id2 year State Gender
==== ====== ====== ===== =======
1 A 2008 ca M
1 B 2008 ca M
3 A 2009 ny F
3 A 2008 ny F
4 A 2009 tx F
select
state, gender, [year],
count (distinct(cast(id1 as varchar(10)) + id2))
from
tabl1
group by state, gender, [year]
Я мог бы найти отчетливый счет по состоянию.
Теперь мне нужно найти четкий счет по городам. как в CA - 3 города .. SFO, La, Sanjose. у меня есть справочная таблица, в которой я могу найти штат и город.
table2 - city
====
cityid name
==== ====
1 sfo
2 la
3 sanjose
table 3 - state
====
stateid name
==== ====
1 CA
2 Az
table 4 lookup state city
====
pk_cityId pk_state_id
1 1
2 1
select state,city,gender, [year],
count (distinct(cast(id1 as varchar(10)) + id2))
from
tabl1 p
group by state, gender, [year],city
этот запрос для поиска названия города и штата.
select c.city,s.state from city_state sc
inner join (select * from state)s on sc.state_id = s.state_id
inner join (select * from city)c on sc.city_id = c.city_id
Я сделал аналогичный запрос, используя справочную таблицу, но проблема в том, что я получаю отчетливый счетчик по всем штатам, и одно и то же число не повторяется для каждого города в штате.
ex: для подсчета для ca: 10, тогда счет для городов должен быть таким же, как La - 5, sanjose - 4, sfo-1.
но с моим запросом я получаю sfo - 10, la-10, sanjose-10 .. я не могу найти счетчик для нижнего уровня. любая помощь будет оценена.
UPDATE:
Я обновил запрос и таблицы поиска.