2012-10-31 3 views
2

Access에 연결할 SQL 데이터베이스가 있습니다. 데이터는로 구성된다SQL ACCESS - 시간별 특정 합계로 행 나누기

다음 :

Date ELEMENT  VALUE 
01-2010 ElementA 12 
01-2010 ElementB 43 
01-2010 ElementC 53 
01-2010 ElementD 24 
01-2010 El_Divisor 120 
02-2010 ElementA 54 
02-2010 ElementB 32 
02-2010 ElementC 48 
02-2010 ElementD 21 
02-2010 El_Divisor 130 
etc etc.... 

I는, 각 시점에 대해 구하여 각 즉 "ElementDivisor"에 의해 분할 요소

Date ELEMENT  VALUE 
01-2010 ElementA = 12/120 
01-2010 ElementB = 43/120 
01-2010 ElementC = 53/120 
01-2010 ElementD = 24/120 
01-2010 El_Divisor = 120/120 = 1 
02-2010 ElementA = 54/130 
02-2010 ElementB = 32/130 
02-2010 ElementC = 48/130 
02-2010 ElementD = 21/130 
02-2010 El_Divisor = 130/130 = 1 
etc etc.... 

주의해야 다음 " El_Divisor "는 다른 모든 요소의 합계가 아닙니다. 현재 매우 차선책 인 여러 개의 크로스 탭 시스템을 사용하고 있습니다.

누구나 아이디어가 있습니까? 다른 SQL 프로그램의 아이디어도 환영합니다.

많은 감사

+1

기본적으로 각 월/연도 쌍에는 일련의 요소와 일치하는 약수 레코드가 있습니까? –

+0

@MarcB - 정확히 Marc. –

답변

0

나는 이것을 사용합니다 솔루션 :

Select 
    tbl_Elements.[Date], 
    tbl_Elements.Element, 
    tbl_Elements.[Value]/tbl_Elements_1.[Value] 
From 
    tbl_Elements 
    INNER JOIN 
    tbl_Elements tbl_Elements_1 
    ON tbl_Elements.Date = tbl_Elements_1.Date 
Where 
    tbl_Elements.Element <> "El_Divisor" 
    AND tbl_Elements_1.Element = "El_Divisor" 

tbl_Elements.Element <> "El_Divisor" 제수가 그 자체로 나뉘는 것을보고 싶습니다.

+0

테스트를 거쳐 작동합니다! 좀 더 직설적인데, 저는 이것을 사용할 것입니다. 모두에게 감사드립니다. –

1

이 Access에서 작동하는 경우,보기에 내부 선택을 넣어해야 할 수도 있습니다 확실하지 :

Select 
    v.[Date], 
    v.Element, 
    v.[Value]/d.[Value] As [Value] 
From (
    Select 
    e.[Date], e.[Value] 
    From 
    Elements e 
    Where 
    e.Element = 'El_Divisor' 
) As d Inner Join (
    Select 
    e.[Date], e.Element, e.[Value] 
    From 
    Elements e 
    Where 
    e.Element <> 'El_Divisor' -- take this out if you want to see the El_Divisor/El_Divisor row 
) as v 
    On d.[Date] = v.[Date] 

편집 - Remou의 제안에 따라 고정

+0

날짜와 값이 예약어이므로 [날짜], [값] 또는 d.date와 'e.Element! ='El_Divisor''가 'e.Element <>'여야한다는 점을 제외하고는 Access에서 나에게 잘 어울립니다. El_Divisor '' – Fionnuala

+0

@Remou - 고마워, 이것을 고쳤고, 내가 바깥 쪽 선택에 잘못된 별칭을 사용하고 있다는 것을 알아 차렸다. – Laurence

+0

테스트를 거쳐 작동합니다! 매우 감사합니다. –