SQL Server 2つのテーブルをマージし、不足している値を計算します

ステファンF

日付を含むテーブルT1と、日付と値を含むテーブルR2があります。R2の日付と値を取得し、これをテーブルR2から値を見つける必要があるT1の日付とグループ化するクエリを作成したいと思います。

T1

Start Date
-----------------------
2018-08-09 09:42:00.000
2018-08-09 09:46:00.000
2018-08-09 09:48:00.000

R2

Start Date             | Value
-----------------------|-------
2018-08-09 09:40:00.000|1
2018-08-09 09:43:00.000|2
2018-08-09 09:44:00.000|3

そしてその結果

Start Date             | Value|Original|
-----------------------|----------------
2018-08-09 09:40:00.000|1     |yes     |
2018-08-09 09:43:00.000|2     |yes     |
2018-08-09 09:44:00.000|3     |yes     |
2018-08-09 09:42:00.000|1     |no      | --> Value found in R2 table (first value before the date)
2018-08-09 09:46:00.000|3     |no      | --> Value found in R2 table (first value before the date)
2018-08-09 09:48:00.000|3     |no      | --> Value found in R2 table (first value before the date)

少し早いですがお礼を

Tim Biegeleisen

1つのオプションは、おそらく最もパフォーマンスが高くありませんが、SQL Serverのどのバージョンでも機能するはずです。相関サブクエリを使用してR2、の開始日よりも短い最新の開始日を検索T1ます。

WITH cte AS (
    SELECT
        t1.StartDate,
        (SELECT TOP 1 t2.Value FROM R2 t2
         WHERE t2.StartDate < t1.StartDate ORDER BY t2.StartDate DESC) Value,
        'No' AS Original
    FROM T1 t1
)

SELECT StartDate, Value, 'Yes' AS Original FROM R2
UNION ALL
SELECT StartDate, Value, Original FROM cte
ORDER BY Original DESC, StartDate;

デモ

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

SQL Server:2つのテーブルのデータをマージします

分類Dev

SQL Server:2つのテーブルを結合してビューを作成し、新しい列で2つの列の合計を見つけます

分類Dev

SQL Server:2つのテーブルを照合し、値を取得します

分類Dev

SQL Serverテーブルをピボットし、2つの列を同時にマージします

分類Dev

SQL Serverで計算された合計に基づいて、各行のパーセンテージ値を計算します

分類Dev

SQL Server 2008 R2を使用して、他の列の合計を自動的に計算する列を持つテーブルを作成するにはどうすればよいですか?

分類Dev

SQL Server:テーブル内の最大のパーセンテージ値をマークします

分類Dev

SQL Server:ループを使用して2つのテーブルを結合します

分類Dev

SQL Server:テーブルの列を選択してから、上位1つの値を選択します

分類Dev

主キーなしで日付に基づいて2つのテーブルを結合する(SQL Server 2014)

分類Dev

SQL Serverの同じテーブルを使用して、2つの異なる行を1つのテーブルに結合します

分類Dev

SQL Server:2つの値を正規表現でマージします

分類Dev

SQL Server 2008 R2 : 別のテーブルの値に基づいてテーブルの列を計算する

分類Dev

SQL Server:1つの動的クエリ、定数などを使用してテーブルに値を挿入します

分類Dev

SQL Server 2008 R2:別のテーブルと一致するテーブル値を更新します

分類Dev

SQL Serverの2つのエントリ(値)を持つ同じテーブルの別の列を使用して列を更新します

分類Dev

SQL Server-学生のGPAを計算し、テーブル変数に挿入します

分類Dev

SQL Server:同じテーブル内の値を更新します

分類Dev

SQL Serverは、同じテーブルの2つの行の値を比較し、一致しない列名を取得します

分類Dev

SQL Server-等しいかどうかをチェックせずに、同じ列のデータについて2つのテーブルを比較します

分類Dev

SQL Server:MERGEステートメントを使用して2つのテーブルを更新する

分類Dev

SQL Server 2008、同じ列情報を共有しない2つの異なるテーブルから2つの列を選択して、新しいテーブルを取得します

分類Dev

SQL SERVERで2つのテーブルをマージする方法は?

分類Dev

SQL Server2014の異なるサーバー上の2つのテーブルを比較します

分類Dev

SQL Server:FKを使用して2つのテーブルに同時に挿入します

分類Dev

SQL Serverは、独自の値と日付が保持された2つのテーブルを結合します

分類Dev

SQL Serverで2つのレコードをマージし、列を合計する方法

分類Dev

SQL Serverは、異なるテーブルの列を持つ行をマップします

分類Dev

SQL SERVERは、2つの列をマージして結合し、同じ数をカウントします

Related 関連記事

  1. 1

    SQL Server:2つのテーブルのデータをマージします

  2. 2

    SQL Server:2つのテーブルを結合してビューを作成し、新しい列で2つの列の合計を見つけます

  3. 3

    SQL Server:2つのテーブルを照合し、値を取得します

  4. 4

    SQL Serverテーブルをピボットし、2つの列を同時にマージします

  5. 5

    SQL Serverで計算された合計に基づいて、各行のパーセンテージ値を計算します

  6. 6

    SQL Server 2008 R2を使用して、他の列の合計を自動的に計算する列を持つテーブルを作成するにはどうすればよいですか?

  7. 7

    SQL Server:テーブル内の最大のパーセンテージ値をマークします

  8. 8

    SQL Server:ループを使用して2つのテーブルを結合します

  9. 9

    SQL Server:テーブルの列を選択してから、上位1つの値を選択します

  10. 10

    主キーなしで日付に基づいて2つのテーブルを結合する(SQL Server 2014)

  11. 11

    SQL Serverの同じテーブルを使用して、2つの異なる行を1つのテーブルに結合します

  12. 12

    SQL Server:2つの値を正規表現でマージします

  13. 13

    SQL Server 2008 R2 : 別のテーブルの値に基づいてテーブルの列を計算する

  14. 14

    SQL Server:1つの動的クエリ、定数などを使用してテーブルに値を挿入します

  15. 15

    SQL Server 2008 R2:別のテーブルと一致するテーブル値を更新します

  16. 16

    SQL Serverの2つのエントリ(値)を持つ同じテーブルの別の列を使用して列を更新します

  17. 17

    SQL Server-学生のGPAを計算し、テーブル変数に挿入します

  18. 18

    SQL Server:同じテーブル内の値を更新します

  19. 19

    SQL Serverは、同じテーブルの2つの行の値を比較し、一致しない列名を取得します

  20. 20

    SQL Server-等しいかどうかをチェックせずに、同じ列のデータについて2つのテーブルを比較します

  21. 21

    SQL Server:MERGEステートメントを使用して2つのテーブルを更新する

  22. 22

    SQL Server 2008、同じ列情報を共有しない2つの異なるテーブルから2つの列を選択して、新しいテーブルを取得します

  23. 23

    SQL SERVERで2つのテーブルをマージする方法は?

  24. 24

    SQL Server2014の異なるサーバー上の2つのテーブルを比較します

  25. 25

    SQL Server:FKを使用して2つのテーブルに同時に挿入します

  26. 26

    SQL Serverは、独自の値と日付が保持された2つのテーブルを結合します

  27. 27

    SQL Serverで2つのレコードをマージし、列を合計する方法

  28. 28

    SQL Serverは、異なるテーブルの列を持つ行をマップします

  29. 29

    SQL SERVERは、2つの列をマージして結合し、同じ数をカウントします

ホットタグ

アーカイブ