1

Costs と Payments を日付順に並べ替えた結果を取得したいと考えています。これは私が試しているクエリです:

SELECT ClientID, TheDate, Payment, Cost
FROM
(
  SELECT PaymentDate AS TheDate, Amount AS Payment, ClientID
  FROM Payment
  UNION ALL
  SELECT BookedDate AS TheDate, Cost, ClientID
  FROM [All Bookings Query]
)
ORDER BY TheDate DESC;

それはほとんど機能します...しかし、「支払い」の値を入力するためのボックスがポップアップします(フィールドが存在しないように)。空白のままにして [OK] をクリックすると、"Payment" 列が完全に空白で、"Cost" 列に両方のテーブルの金額が含まれる結果セットが得られます。私が使用しているフィールド名は 100% 正しいです。

問題は、UNION が両方のテーブルを 3 列の結果に押しつぶそうとしていて、4 を選択しようとしていることだと思います。これまでこのようなクエリを実行したことがないので、それを回避する方法がわかりません。 .

私が望むのは、支払いと費用が別々の列にあることです。クエリの何が問題になっていますか?

4

1 に答える 1

1

サブクエリのそれぞれに 4 つの列が必要で、支払いの場合はコスト列に 0 を、予約の場合は支払い列に 0 を入力します。

SELECT ClientID, TheDate, Payment, Cost
FROM
(
  SELECT PaymentDate AS TheDate, Amount AS Payment, 0 AS Cost, ClientID
  FROM Payment
  UNION ALL
  SELECT BookedDate AS TheDate, 0 As Payment, Cost, ClientID
  FROM [All Bookings Query]
)
ORDER BY TheDate DESC;
于 2013-05-08T17:37:39.847 に答える