0

私はfoxprosqlを作成しており、3つの異なるテーブルの3つの日付列を新しい日付列に結合する必要があります。例として、3つのテーブルがA、B、およびCであり、日付列がAdate、Bdate、およびCdateである場合、それらを別個の別個の日付としてTransDateという列とSQLに結合するにはどうすればよいですか?私はこれで非常に新しいので、可能であればコードのサンプルをいただければ幸いです

4

2 に答える 2

0

ええ、もっと日付を明確にする必要があります。3を1に結合することはできません...または、特定のトランザクションに関連付けられた3つの日付すべてを表示する1つの結果行が必要ですか?または、(たとえば)3つの日付の最も早い日付で、最初の取引日がいつ開始されたかを識別したいですか?いずれにせよ、質問で明確にしてください。ただし、テーブルの構造を詳しく知らなくても可能なオプションがあります...また、foxpro(VFP)テーブルから直接実行する場合は、明らかに追加する必要があります。 「;」次のステートメントの行の続きとして

select 
      T1.ADate,
      T2.BDate,
      T3.CDate,
      iif( T1.ADate > T2.BDate and T1.ADate > T3.CDate, T1.ADate,
           iif( T2.BDate > T1.ADate and T2.BDate > T3.CDate, 
               T2.BDate, T3.CDate ) ) as LargestDate,
      iif( T1.ADate < T2.BDate and T1.ADate < T3.CDate, T1.ADate,
           iif( T2.BDate < T1.ADate and T2.BDate < T3.CDate, 
               T2.BDate, T3.CDate ) ) as EarliestDate
   from 
      YourTableA T1,
      YourTableB T2,
      YourTableC T3
   where 
          T1.IDKey = T2.IDKey
      AND T1.IDKey = T3.IDKey
   into 
      cursor C_SomeTestResultCursor

繰り返しになりますが、3つのテーブルに共通する「キー」が何であるかはわかりません。そのため、その要素が何であれ、クエリを調整する必要があります。

于 2010-04-30T13:39:15.670 に答える
0

新しい回答オプション...購入、在庫調整、または販売についてのコメントから、見たい出力の明確な説明やサンプルがない場合は、次のようなものが必要だと思います...

表A=購入表B=調整表C=販売

この構成に同意するかどうかはわかりませんが、簡単な説明からのみ示唆できます。もっと「元帳」スタイルの要約が必要だと思います

購入1月10日購入1月15日販売2月2日調整2月10日購入2月15日など...

それなら、UNIONをやります

select  
      "Purchase   " as TransType,
      T1.ADate as TransDate
   from
      YourTableA T1
   where 
      T1.IDKey = ?SomeValueSuchAsAccount
   order by
      TransDate
UNION ALL
select
      "Adjustments" as TransType,
      T2.BDate as TransDate
   from
       YourTableB T2
   where 
      T2.IDKey = ?SomeValueSuchAsAccount
UNION ALL
select
      "Sales      " as TransType,
      T3.CDate as TransDate
   from
       YourTableB T3
   where 
      T3.IDKey = ?SomeValueSuchAsAccount

私の仮定が間違っている場合は、そのようなトランザクション、データレイアウトなどのサンプルを、自分自身と他の人にもう少し提供してください。ライブデータは必要ありません。また、完全なテーブル構造や実際のテーブル名も必要ありません。ただし、特に将来的に支援が必要な場合は、さらに協力する必要があります。そうしないと、人々があなたの要求に驚かされる可能性があります。

于 2010-05-02T23:51:02.347 に答える