は、SQLの選択クエリのヘルプ/ガイドが必要です。在庫が2つあり、在庫は在庫のの初期値を持ち、在庫表を更新する前に在庫表から1番目に挿入されます。私の場合はこれがオープン在庫残高と近い在庫残高を追跡することである 、選択日付に基づいて株式のステータスを取得する必要があるだけで、特定のタイムスタンプのためのテーブルの株式 からデータをフェッチする必要がある場合には、近い在庫残高が簡単であるが、重要な部分特定のタイムスタンプのステータスを追跡する必要がオープン在庫残高、 のためのデータをフェッチするとき、これが唯一の履歴表を参照のうえによって行うことができるので、私は株式とstock_historyselectステートメントのsqlクエリ
の両方からのデータを選択する必要があり、SQLを必要としていますSELECT * FROM stock
UNION ALL
SELECT * FROM stock_history
WHERE ...
私はあなたのスキーマを再構築をお勧めしたい、言った:
status table
id desc
-- ----
01 consignment
02 customer
03 bank
04 safekeep
05 exit
stock
-----
ref_no serial_no status timeStamp
1 001 04 2012-03-01 09:03:00
stock_history
-------------
ref_no serial_no status timeStamp
1 001 01 2012-03-01 09:00:00
1 001 03 2012-03-01 09:01:00
1 001 02 2012-03-01 09:02:00
so, when choose for date
01/03/12 time 9:01 = 1 001 03 2012-03-01 09:01:00
01/03/12 time 9:01 = 1 001 03 2012-03-01 09:01:00
、事前
'ALL'だけ重複することができます。このスキーマが与えられているので、それらは可能ではないので、ここで私の答えと異なる何もしません。 –
@BenLee:「*それは*異なる何もしない」 - 離れて高速化されてから;) –
トウシュ。あなたは新しい答えの代わりに私の答えにコメントとしてそれを掲示できませんでしたか?増加した効率を考慮して私の答えを更新したいと思います。 –