と呼ばれているPeriodID、fromDateから、のToDateで
...これらのテーブルは、特定のプログラムの準備ができていて、変更できません。
私は、TransactionからtxDateを使用して期間テーブルを検索する方法があるかどうかを知りたいのですが、txDateが特定の期間のfromDateとtoDateの間にある場合は、TransactionテイクとPeriodIDを追加します。
と呼ばれているPeriodID、fromDateから、のToDateで
...これらのテーブルは、特定のプログラムの準備ができていて、変更できません。
私は、TransactionからtxDateを使用して期間テーブルを検索する方法があるかどうかを知りたいのですが、txDateが特定の期間のfromDateとtoDateの間にある場合は、TransactionテイクとPeriodIDを追加します。
サンプルデータがないと、これらの質問に答えるのは少し難しいです。しかし、私があなたを正しく理解したと仮定すると...
betweenを使用して、これら2つのテーブルを結合することができます。
この参加は、取引日をカバーする期間を返します。
-- Join without a matching field.
SELECT
*
FROM
[Transaction] AS t
INNER JOIN [Period] AS p ON t.txDate BETWEEN p.fromDate AND p.toDate
;
はい、あなたは私を正しく理解しました。これはまさに私が望んでいたものです。 –
これを試してください、あなたの質問に合っていますか?
SELECT *
FROM Transaction
WHERE EXISTS
(
SELECT 1 FROM Period WHERE txDate BETWEEN fromDate AND ToDate
)
サブクエリから外部クエリを参照するときは注意してください。これは[相関サブクエリ](https://en.wikipedia.org/wiki/Correlated_subquery)と呼ばれます。このような種類のクエリは、外部クエリによって返されたすべての行に対してSQL Serverがサブクエリを一度再評価する必要があるため、パフォーマンスが低下する可能性があります。 –
両方のテーブルのサンプルデータと希望の結果を入力してください。 – GuidoG