同じIDと日付の2つのテーブルを結合します

Itzel contreras

このクエリを作成するのに問題があります。サポートを利用できますか?次のようなmeasurementsという名前のテーブルがあります。

  +----+----------+-------+------+
  | id | cost     | month | year |
  +----+----------+-------+------+
  |  1 |  6860.52 |     5 | 2018 |
  |  1 | 11993.52 |     6 | 2018 |
  |  1 |   3823.2 |     7 | 2018 |
  |  1 |   3557.7 |     8 | 2018 |
  |  1 |  3355.92 |     9 | 2018 |
  |  1 |   357.54 |    10 | 2018 |
  +----+----------+-------+------+

と支払いという名前のテーブル

  +------------+---------------+-----------------+
  | id         | period        | payment         |
  +------------+---------------+-----------------+
  |          1 | 2018-05-01    |               0 |
  |          1 | 2018-06-01    |               0 |
  |          1 | 2018-06-01    |           34327 |
  |          1 | 2018-07-01    |             100 |
  |          1 | 2018-07-01    |             500 |
  |          1 | 2018-07-01    |             400 |
  |          1 | 2018-08-01    |               0 |
  +------------+---------------+-----------------+

私はこれを返す選択されたstamentを作ろうとして困っています:

  +------------+---------------+----------------+-----------------+
  | id         | period        | date           | payment         |
  +------------+---------------+----------------+-----------------+
  |          1 | 2018-05-01    | 2018-05-01     |               0 |
  |          1 | 2018-06-01    | 2018-06-01     |           34327 |
  |          1 | 2018-07-01    | 2018-07-01     |            1000 |
  |          1 | 2018-08-01    | 2018-08-01     |               0 |
  |          1 | 2018-09-01    | NULL           |               0 |
  |          1 | 2018-10-01    | NULL           |               0 |
  +------------+---------------+----------------+-----------------+

日付はconcat(年、 '-'、月、 '-'、1)からです

ありがとうございました

スキーマ:

CREATE TABLE measurements (id INT, cost FLOAT, month INT, year INT);

INSERT INTO measurements VALUES (1, 6860.52, 5, 2018), 
(1, 11993.52, 6, 2018), (1, 3823.2, 7, 2018), 
(1, 3557.7, 8, 2018), (1, 3355.92, 9, 2018), (1, 357.54, 10, 2018);

CREATE TABLE payment (id INT, period DATE, payment INT);
INSERT INTO payment VALUES (1, '2018-05-01', 0),
(1, '2018-06-01', 0),(1, '2018-06-01', 34327 ),(1, '2018-07-01', 100),
(1, '2018-07-01', 500),(1, '2018-07-01', 400), (1, '2018-08-01', 0);
DanB

これをお探しですか?

select measurements.id,
      cast(concat(measurements.year, '-', measurements.month, '-01') as date) as period,
      payment.period as date, sum(payment) payment
from measurements
        left join payment on measurements.id = payment.id and cast(concat(measurements.year, '-', measurements.month, '-01') as date)  =  payment.period
group by measurements.id, measurements.year, measurements.month, payment.period
order by measurements.year, measurements.month;

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

同じ複合キーで2つのテーブルを結合します

分類Dev

MySQL同じテーブルの2つのクエリを結合します

分類Dev

日付条件を使用して2つのテーブルを結合します

分類Dev

異なる月と合計値で同じテーブルの2つのクエリを結合します

分類Dev

MySQL-最新の日付で2つのテーブルを結合します

分類Dev

同じテーブルの異なるIDで2つの行を結合します

分類Dev

同じテーブルの2つを別のテーブルに結合し、同じ行の(同じ)テーブルの情報を出力します

分類Dev

同じテーブルとフィルターの2つのSQL選択クエリを結合します

分類Dev

mysql-開始日と日付に基づいて2つのテーブルを結合します

分類Dev

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

分類Dev

SQLを使用して、同じ日付の異なるカテゴリの価格を1つのテーブルに結合します

分類Dev

2つの日付フレームを同じ列に結合しますが、日付は異なります

分類Dev

同じ日付または最も近い前の日付(完全一致だけでなく)で結合して2つのテーブルを結合します

分類Dev

同じ ID で 2 つのテーブルを結合し、ID 列をマージする

分類Dev

同じIDで2つのテーブルを結合するscalaspark rdd

分類Dev

日付の最大値のIDを取得する方法を3つのテーブルで内部結合しますか?

分類Dev

MySqlはテーブルを結合し、他の2つの列が同じ場合に列を追加します

分類Dev

mysqlは3つのテーブル、同じテーブルを2回結合します

分類Dev

日付が同じ場合は、最大日付と最大IDを持つテーブルからIDを選択します

分類Dev

同じフィールド名を持つ2つのテーブルを結合します

分類Dev

同じテーブルの次の日付値を結合する方法

分類Dev

別のテーブルの同じものを指す同じテーブルの2つの行を結合します

分類Dev

mySQL-2つのテーブルを1つの同じ列値と組み合わせて、開始日と終了日を比較します

分類Dev

同じテーブルの2つのフィールドをパラメータで結合します

分類Dev

同じテーブル内の2つの列の日付を収集します

分類Dev

同じテーブルの複数の行を1つに結合します

分類Dev

同じテーブルの2つのSQLステートメントを結合します

分類Dev

同じテーブルの列を結合し、IDに基づいて2つの列の合計を表示します

分類Dev

1つのテーブルを他の2つのテーブルとIDで結合します

Related 関連記事

  1. 1

    同じ複合キーで2つのテーブルを結合します

  2. 2

    MySQL同じテーブルの2つのクエリを結合します

  3. 3

    日付条件を使用して2つのテーブルを結合します

  4. 4

    異なる月と合計値で同じテーブルの2つのクエリを結合します

  5. 5

    MySQL-最新の日付で2つのテーブルを結合します

  6. 6

    同じテーブルの異なるIDで2つの行を結合します

  7. 7

    同じテーブルの2つを別のテーブルに結合し、同じ行の(同じ)テーブルの情報を出力します

  8. 8

    同じテーブルとフィルターの2つのSQL選択クエリを結合します

  9. 9

    mysql-開始日と日付に基づいて2つのテーブルを結合します

  10. 10

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

  11. 11

    SQLを使用して、同じ日付の異なるカテゴリの価格を1つのテーブルに結合します

  12. 12

    2つの日付フレームを同じ列に結合しますが、日付は異なります

  13. 13

    同じ日付または最も近い前の日付(完全一致だけでなく)で結合して2つのテーブルを結合します

  14. 14

    同じ ID で 2 つのテーブルを結合し、ID 列をマージする

  15. 15

    同じIDで2つのテーブルを結合するscalaspark rdd

  16. 16

    日付の最大値のIDを取得する方法を3つのテーブルで内部結合しますか?

  17. 17

    MySqlはテーブルを結合し、他の2つの列が同じ場合に列を追加します

  18. 18

    mysqlは3つのテーブル、同じテーブルを2回結合します

  19. 19

    日付が同じ場合は、最大日付と最大IDを持つテーブルからIDを選択します

  20. 20

    同じフィールド名を持つ2つのテーブルを結合します

  21. 21

    同じテーブルの次の日付値を結合する方法

  22. 22

    別のテーブルの同じものを指す同じテーブルの2つの行を結合します

  23. 23

    mySQL-2つのテーブルを1つの同じ列値と組み合わせて、開始日と終了日を比較します

  24. 24

    同じテーブルの2つのフィールドをパラメータで結合します

  25. 25

    同じテーブル内の2つの列の日付を収集します

  26. 26

    同じテーブルの複数の行を1つに結合します

  27. 27

    同じテーブルの2つのSQLステートメントを結合します

  28. 28

    同じテーブルの列を結合し、IDに基づいて2つの列の合計を表示します

  29. 29

    1つのテーブルを他の2つのテーブルとIDで結合します

ホットタグ

アーカイブ