4

行数が Excel で処理できる数を超えているため、MS Access でデータを再フォーマットしようとしています。ただし、これはサブクエリを使用した最初の試みであり、私がすべきことを支援することができます。

次のようなデータがあります。

t, id, x
1, 10, 1
1, 20, 5
1, 30, 10
2, 10, 2
2, 20, 7
2, 30, 14

そして、私はそれを次の順序で変更しようとしています:

id, t1, t2, x1, x2
10, 1,  2,  1,  2
20, 1,  2,  5,  7
30, 1,  2,  10, 14
... 
10, 70, 71, 66, 68

表示されるデータは距離と時間の値です。したがって、上記を再フォーマットして、(x2 - x1) / (t2 - t1) で速度を計算します。

これは Access が支援できるものですか? 最終結果を得るために複数のテーブル/クエリを使用しなければならないことにあまり悩まされていません...そこにたどり着く限り!!!

4

3 に答える 3

1

元のデータからクロス集計クエリを作成し、別のクエリを使用してクロス集計クエリから別のテーブルを選択します。

于 2013-02-06T18:06:51.670 に答える
0

JOINデータ自体を取得し、結合の左側から t1 と x1 を取得し、右側から t2 と x2 を取得する必要があります。トリックは結合にあります。

まず、サンプル データは実際に何が必要かを確認するのに十分なケースをカバーしていないため、推測と推測を行っています...

  • 時間 t で、いくつかの ID の進行状況 x を記録し、各間隔の dx/dt を計算したいとします。
  • t は毎回インクリメントしますが、必ずしも 1 ずつ増加するとは限りません
  • t は ID ごとに一意になります
  • xは来るように来ます。

まず、順番にランク付けされた行が必要です

SELECT 
    (
        SELECT Count(*) 
        FROM Table1
        WHERE [t] < [t1].[t]+1 AND id = t1.id;
    ) AS Rank
    , *
FROM
    Table1 AS t1;

これを Query1 と呼び、

SELECT 
      a.id AS id
    , a.t AS t1
    , b.t AS t2
    , a.x AS x1
    , b.x AS x2
    , (b.x - a.x) / (b.t - a.t) as Speed
FROM
    Query1 as a
        INNER JOIN
    Query1 as b
        ON
                a.id = b.id 
            AND (a.rank + 1) = b.rank

そしてボブはあなたの叔父です

于 2011-12-14T21:45:28.640 に答える
0

SQLサーバーは使えますか?それとも、Access/Excel を使用してこれを実行しようとしていますか? 本当にシンプルでクリエイティブにしたい場合は、TextPadマクロでもこれを行うことができます...特に行が一貫してその順序である場合.

于 2012-01-03T17:30:17.970 に答える