0
나는 레이스를 선회이 쿼리 나이형식 크로스 탭
create table test4(city nvarchar(10), race nvarchar(30), sex nvarchar(10), age int)
insert into test4 values ('Austin', 'African-American', 'male', 21)
insert into test4 values ('Austin', 'Asian', 'female', 22)
insert into test4 values ('Austin', 'Caucasian', 'male', 23)
insert into test4 values ('Austin', 'Hispanic', 'female', 24)
insert into test4 values ('Austin', 'African-American', 'Unknown', 25)
insert into test4 values ('Austin', 'Asian', 'male', 26)
insert into test4 values ('Austin', 'Caucasian', 'female', 27)
insert into test4 values ('Austin', 'Hispanic', 'Unknown', 28)
insert into test4 values ('Austin', 'Asian', 'male', 29)
insert into test4 values ('Austin', 'Caucasian', 'female', 31)
insert into test4 values ('Dallas', 'Hispanic', 'Unknown', 32)
insert into test4 values ('Dallas', 'African-American', 'male', 33)
insert into test4 values ('Dallas', 'Asian', 'female', 34)
insert into test4 values ('Dallas', 'Caucasian', 'Unknown', 35)
insert into test4 values ('Dallas', 'Hispanic', 'male', 500)
insert into test4 values ('Dallas', 'African-American', 'female', 36)
insert into test4 values ('Dallas', 'Asian', 'Unknown', 37)
insert into test4 values ('Dallas', 'Caucasian', 'male', 38)
insert into test4 values ('Dallas', 'Hispanic', 'female', 39)
insert into test4 values ('Dallas', 'African-American', 'Unknown', 41)
insert into test4 values ('Houston', 'Asian', 'male', 42)
insert into test4 values ('Houston', 'Caucasian', 'female', 43)
insert into test4 values ('Houston', 'Hispanic', 'Unknown', 44)
insert into test4 values ('Houston', 'African-American', 'male', 45)
insert into test4 values ('Houston', 'Asian', 'female', 46)
insert into test4 values ('Houston', 'Caucasian', 'Unknown', 47)
insert into test4 values ('Houston', 'Hispanic', 'male', 48)
insert into test4 values ('Houston', 'African-American', 'female', 49)
insert into test4 values ('Houston', 'Asian', 'Unknown', 51)
insert into test4 values ('Houston', 'Caucasian', 'male', 52);
WITH T AS (
SELECT
A.city as city, A.sex as sex,
CASE
WHEN A.age BETWEEN 20 AND 30 THEN '20-30_' + race
WHEN A.age BETWEEN 31 AND 40 THEN '31-40_' + race
WHEN A.age BETWEEN 41 AND 50 THEN '41-50_' + race
END AS age_range_race
FROM test4 AS A
)
SELECT *
FROM T
PIVOT(COUNT(age_range_race) FOR age_range_race
IN(
[20-30_African-American],
[20-30_Asian],
[20-30_Caucasian],
[20-30_Hispanic],
[31-40_African-American],
[31-40_Asian],
[31-40_Caucasian],
[31-40_Hispanic],
[41-50_African-American],
[41-50_Asian],
[41-50_Caucasian],
[41-50_Hispanic]
)
) AS P
로 그룹화하고 난 그것을 실행할 때 나는 이것이하지만 내가 필요로하는 것은 이것이다
1 http://img834.imageshack.us/img834/8808/sqlnow.jpg
수 , 나이 범위없이. 내가 나이를 표시하는 사용자 정의 헤더와 Radgrid에서 피벗을 넣어 될 것입니다
1 http://img716.imageshack.us/img716/1462/sqllater.jpg
그래서 그들은 열 헤더에 필요하지 않을 것입니다 범위. 이것이 가능한가? 미리 감사드립니다.
을 BTW : (그것은 당신의 기본 설정을 넘어 많은 일을하지 않기 때문에,이 솔루션의 좋은 것은 아니지만) 이것은 내가 제공 할 수있는 가장 가까운 sqlfiddle.com –
답장을 보내 주셔서 감사 드리며 도움을 주셔서 감사합니다. 그러나 가능한 경우 동일한 열 이름이 여러 번 반환되어야합니다. – user973671
글쎄, 난 당신이 그들의 이름보다는 결과 집합에서 자신의 위치에 의해 열을 명확하게 계획해야한다고 가정합니다. 이 경우 두 번째 예제에서 열 별칭에서 후행 숫자를 제거하면 원하는 결과를 얻을 수 있습니다. –