2

Access で接続する SQL データベースがあります。

データは次のように構成されています。

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....

各時点で、「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 プログラムのアイデアも大歓迎です。

どうもありがとう

4

2 に答える 2

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 の提案に従って修正

于 2012-10-31T15:37:17.850 に答える
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"除数をそれ自体で割ったものを見たい場合は、削除できます。

于 2012-10-31T15:54:58.407 に答える