OK、これはかなり複雑ですが、私はAccessを初めて使用するので、それほど難しくはないかもしれません。
データベースに3つのテーブルがあります。
クライアント-これには、ファンドのすべてのクライアントのリストが含まれています。これらのクライアントの一部は、ファンドに複数のアカウントを持っています。構造:
ID | CliName
------------
1 | Joe Blogs Holdings
2 | John Doe Investments
etc...
ClientMap-これには基本的にすべてのアカウントのリストがあり、別のフィールドにはそれが属するクライアント(アカウントを所有するクライアントのこのID)が含まれます。
ID | AccountName | ClientName | ClientID (refs to ID in Clients)
------------
1 | Joe Blogs Safe Fund | Joe Blogs Holdings | 1
2 | Joe Blogs Risk Fund | Joe Blogs Holdings | 1
3 | John Doe Fund | John Doe Investments | 2
etc...
評価-これは、任意の日付における各アカウントの値のリストです。
ID | ValuationDate | Valuation | AccName
------------
1 | 30/09/2012 | 1,469,524 | Joe Blogs Safe Fund
2 | 30/09/2012 | 1,767,134 | Joe Blogs Risk Fund
3 | 30/09/2012 | 239,561 | John Doe Fund
4 | 30/06/2012 | 1,367,167 | Joe Blogs Safe Fund
5 | 30/06/2012 | 1,637,121 | Joe Blogs Risk Fund
6 | 30/06/2012 | 219,241 | John Doe Fund
OK、それで、clientsテーブルから選択されたクライアントをリストし、すべてのアカウントの評価の合計を返すクエリを実行したいと思います。たとえば、John Doeにはアカウントが1つしかないため、クエリ結果は次のようになります。
ClientName | ValuationDate | Valuation
----
John Doe Investments | 30/09/2012 | 239,561
John Doe Investments | 30/06/2012 | 219,241
しかし、クエリはJoeBlogsに対して次のようなものを返すはずです。
ClientName | ValuationDate | Valuation
----
Joe Blogs Holdings | 30/09/2012 | 3,236,658
Joe Blogs Holdings | 30/06/2012 | 3,004,288
したがって、追加する日付ごとに、すべてのJoe Blogsのアカウントの合計が検出され、全体的な評価が得られます。どうすればよいですか?
これが明確であり、そこにいるアクセスの専門家が私を助けてくれることを願っています。ありがとう
私はこれまでにこれを持っていますが、それは各日付のアカウントを合計するのではなく、それらを個別にリストするだけです:
SELECT ClientMap.AccName, Clients.ClientName, Valuations.ValuationDate, Valuations.Valuation
FROM (Clients INNER JOIN ClientMap ON Clients.ID = ClientMap.ClientID) INNER JOIN Valuations ON ClientMap.AccName = Valuations.AccName
WHERE (((Clients.ClientName) Like [Which Client?] & "*"));