2017-12-03 3 views
0

MS Access 2007에서 SQL 초보자 및 woriking입니다. 여러 열을 함께 추가하려고하지만 쿼리에 포함될 열의 수가 항상 변경됩니다. 예를 들어, Year to Date 예산을 계산해야합니다. 사용자가 쿼리를 실행할 때마다 새 날짜가 입력되고 Month1, Month2, Month3 ... Month 12 columns가 있습니다. 런타임에 얼마나 많은 열을 쿼리에 포함할지 결정하는 방법에 대해 혼란 스럽습니다. 사용자가 2011 년 8 월 31 일에 입력하면 Month1, Month2, Month3, Month4, Month5 (회계 연도 - 월)SQL MS Access 2007에서 동적으로 열 수 변경

enter image description here을 선택해야합니다.

+3

왜 데이터를 와이드 포맷으로 저장하고 있습니까? ** 1 ** 월 열만있는 긴 형식으로 값 데이터를 저장하고 회계 연도와 월별 지표를 저장하십시오. 검색어가 훨씬 쉬워집니다. 긴 형식은 저장/검색 효율성, 유지 보수성 및 확장 성이 뛰어납니다. – Parfait

+0

위의 의견에 동의합니다. 긴 형식으로 저장된 데이터의 경우 질문에 따라 변수 열과 함께 표시 될 수있는 크로스 탭 쿼리를 작성할 수 있습니다. – Billious

+0

@Parfait 데이터 테이블을 제어 할 권한이 없습니다. 작업해야하는보기가 있습니다. – Prasanna

답변

0

끔찍한 생각입니다! 이런 식으로 날짜를 저장하십시오.

enter image description here

QryYTD : 코드 :

SELECT 
    Sum(qryNet.Net) AS YTD 
FROM 
    qryNet 
WHERE 
    (((qryNet.OrderDate) Between DateSerial(Year(Date()),1,1) AND Date())) 

QryMTD : 코드 :

SELECT 
    Sum(qryNet.Net) AS MTD 
FROM 
    qryNet 
WHERE 
    (((qryNet.OrderDate) Between DateSerial(Year(Date()),Month(Date()),1) 
AND 
    Date())); 

QryWTD : 코드 :

SELECT 
    Sum(qryNet.Net) AS WTD 
FROM 
    qryNet 
WHERE 
    (((qryNet.OrderDate) Between DateAdd("d",-Weekday(Date()),Date()+2) 
AND 
    Date())); 

작성된대로 qryWTD는 현재 월요일을 시작 날짜로 사용합니다.

세 가지가 작동하면 이전 쿼리 각각을 추가하고 YTD, MTD 및 WTD를 쿼리 필드로 지정하여 래퍼 쿼리를 만들 수 있습니다.

관련 문제