2017-05-02 1 views
1

나는 20 만 개 대출을 원래 저울 Access 테이블을 가지고 있고이 같은 $ 10 만 + $ 5,000 씩 모든 방법의 버킷으로 그룹화를하고 싶습니다 :포맷 통화

0- 5000

5,001-10,000

10,001-15,000

(등) 물론

, 나는 세계에서 가장 긴 IIF 문 t를 작성할 수 그 조건들을 만족 시키지만 더 쉬운 방법이 있어야합니까? 나는 이런 식으로 오픈 날짜와 비슷한 작업을 수행하기 위해 FORMAT() 함수를 사용 해왔다.

Month: Format([Loans].[OpenDate],"YYYY-MM") 

더 좋은 방법이 있습니까?

+0

어디서 5000.01이 될까요? – xQbert

+0

정확히 5000.01 일 필요는 없습니다. 단지 5000 이상이고 <= 10000 –

+0

MySQL 또는 Access를 사용하고 있습니까? 태그를 스팸하지 마십시오. – Barmar

답변

2

이 분할의 정수 부분에 의해 5000 의해 균형 기.

SELECT ... 
GROUP BY INT(balance/5000) 
+0

너무 깨끗한 ... 부끄럽다 ... – xQbert

+0

첫 번째 질문에 대답하려면 MS Access. SQL 태그를 제거했는데 실수였습니다. 불행히도 GROUP BY FLOOR는 Access의 기능이 아닙니다. –

+0

명백하게 Access는 그것을 'INT()'라고 부릅니다. – Barmar

0

... 범위와 인라인 뷰를 생성하고 조인

MSACCESS없이 선택 지원하면 내가 기억 안 열려는 오라클과 같은 듀얼를 가지고 ....하지만이있을 경우 또는 이와 유사한 방법 .... ...

SELECT A.*, B.Range 
FROM TABLE A 
LEFT JOIN (
SELECT 0 as Low, 5000 as High, '0-5000' as Range UNION ALL 
SELECT 5000 as Low, 10000 as High, '5000-10000' as Range UNION ALL 
SELECT 10000 as Low, 15000 as High, '10000-15000' as Range UNION ALL 
SELECT 15000 as Low, 20000 as High, '15000-20000' as Range UNION ALL 
SELECT 20000 as Low, 25000 as High, '20000-25000' as Range UNION ALL 
SELECT 25000 as Low, 30000 as High, '25000-30000' as Range UNION ALL 
SELECT 30000 as Low, 35000 as High, '30000-35000' as Range UNION ALL 
SELECT 35000 as Low, 40000 as High, '35000-40000' as Range UNION ALL 
SELECT 40000 as Low, 45000 as High, '40000-45000' as Range UNION ALL 
SELECT 45000 as Low, 50000 as High, '45000-50000' as Range UNION ALL 
SELECT 50000 as Low, 55000 as High, '50000-55000' as Range UNION ALL 
SELECT 55000 as Low, 60000 as High, '55000-60000' as Range UNION ALL 
SELECT 60000 as Low, 65000 as High, '60000-65000' as Range UNION ALL 
SELECT 65000 as Low, 70000 as High, '65000-70000' as Range UNION ALL 
SELECT 70000 as Low, 75000 as High, '70000-75000' as Range UNION ALL 
SELECT 75000 as Low, 80000 as High, '75000-80000' as Range UNION ALL 
SELECT 80000 as Low, 85000 as High, '80000-85000' as Range UNION ALL 
SELECT 85000 as Low, 90000 as High, '85000-90000' as Range UNION ALL 
SELECT 90000 as Low, 95000 as High, '90000-95000' as Range UNION ALL 
SELECT 95000 as Low, 100000 as High, '95000-100000' as Range 
) B 
on A.Balance > B.Low 
and A.Balance <= B.High