いくつかのクエリをネストしようとしていますが、これまでのところエラー 1242: サブクエリが複数の行を返します。多数のレコードに取り組んでいるため、複数の行が必要です。
私は2つのテーブルを持っています。1 つは開始日が 3 つの列に格納されています。yr_comm、mth_comm、day_comm. 2 番目のテーブルには、整数 (2.71、3.45 など) で表されるユーザー数のサービス期間 (年) があります。
この開始日 (表 1 から) を取得し、(表 2 から) 勤務期間を追加して終了日を取得する必要がありますが、表示する必要があるのは年だけです。
別々にするとうまく機能する2つのクエリがあり、必要な値が得られますが、クエリを組み合わせて目的の最終結果を得るのに問題があります。
クエリ 1: 3 つの開始値を連結して日付形式にする
SELECT concat_ws('-', yr_comm, mth_comm, day_comm) AS date_comm
FROM table 1
クエリ 2: 整数 yrs_service を日数に変換する
SELECT format(yrs_served * 365, 0) AS days_served
FROM table 2
クエリ 3: date_add 関数を使用して、日数サービスを開始日に追加します
SELECT date_add(date_comm, INTERVAL days_served DAY) AS date_left
上記を達成する方法を誰かが提案できますか? よろしくお願いします。
編集 - ここに私が取り組んでいる完全なクエリがあります:
SELECT prime_minister.pm_name, yr_comm, party, ADDDATE(
(SELECT CONCAT_WS('-', yr_comm, mth_comm, day_comm) FROM ministry), INTERVAL
(SELECT FORMAT(yrs_served * 365, 0) FROM prime_minister) YEAR) AS date_left
FROM ministry JOIN prime_minister USING (pm_name)
WHERE party NOT LIKE '%labor%'
AND prime_minister.pm_name = ministry.pm_name
ORDER BY pm_name;