テーブルがあります。それは、これらの列を持っている、のは言わせて:あなたは、いくつかの行はどちらもOpeningBalance
もClosingBalance
列の値を持っていないことに気づくでしょう現在の行の次の空白行まで空白の行の照会の合計
OpeningBalance ClosingBalance SomeOtherValueIDontCareAbout
-------------- -------------- -----------------------------
22 100 Foo
16 84 Bar
Har
Tar
Zar
Bar
Foo Bar
12 16 Har
Par
91 126 Zoogle
Proper
Hello
21 182 Sing
-------------------------------------------------------------------
。
常に、ClosingBalance
はOpeningBalance
より大きい。
行の残高(ClosingBalance
- OpeningBalance
)の増加を計算します。次に、値がある行まで、その行の下の行のどれかが空白の値を持つかを数えます。ClosingBalance
次に、以下のような要約を表示します。
Group IncreaseInBalance TotalRowsItAppliesTo
------------ ------------------ ---------------------
Group1 78 1
Group2 68 6
Group3 4 2
Group4 35 3
Group5 161 1
--------------------------------------------------------------------
これは、私たちが扱っているMS Accessデータベースです。私は完全に失われています。私は何らかの方法でSQLに触れていない、形や形をしている間はしばらくしています。
助けてください。コメントの
UPDATE
感謝。私は私の親しい友人からこの問題を得ました。私も彼もデータの編成に関して何の支配もしていません。選択肢がなければ、私は最初からポスターを1つ作成して2つのテーブルを作成してデータベースを設計しました。
これを踏まえると、私はデータをよく見ていました。
データは、2つの列でソートされます。まず、Locationという文字列値と、次にRecordingDateというDateTime値がソートされます。
ただし、これらの2つの列のどちらも、空白の行には関係しない可能性があります。 inと同様に、約200行が1つの場所と1つの日付に属し、別の100行ほどが同じ場所の別の日付に属し、別の場所に別の200行が別の日付で格納されます。ただし、最初の行の後にも空白の行がたくさんあります。
私が言っていることを得ることを望みます。
したがって、ORDER BYには、空白の行セットをカウントするためにLocationまたはRecordingDateでそれを行うのは間違いだと思います。
Jetデータベースには## rowIdのようなものはありませんか?私は、この作業を行っている組織は、行がデータベースに入力された順序と見なされることを想定していると思います。
出口がありますか?
SQLはセットベースの言語ですか?明示的にソートされていない限り、 "order"という概念はありません。可能な限り、すべてのタプル(行)に対してOpeningBalanceとEndingBalanceを明示的に挿入する必要があります。 – voithos
@voithosによると、これは順序付けられたシーケンスに依存しますが、SQLでは、注文できる列がある場合にのみ順序が保証されます。 ORDER BYでサンプルデータを注文するために使用できるデータセット内の列はありますか? – MatBailie
これらのデータを格納するテーブルは、バランス値(ギャップなし!)とキー列を含むテーブルと、SomeOtherValueIDontCareAboutを持つ行と、2つのテーブルをリンクさせる参照カラム適切な方法で。その後、増加を計算し、関連する行を数えることは、単なる参加、グループ化および集約の問題に過ぎない。 –