• 1
    hiroton 2021/04/06 (火) 13:26:27 6edc5@f966d

    SELECT 社員マスタ.社員番号, 社員マスタ.氏名, 社員マスタ.入社年月日, 社員マスタ.生年月日, 全社員住所歴マスタ.郵便番号,
     全社員住所歴マスタ.都道府県, 全社員住所歴マスタ.市区町村, 全社員住所歴マスタ.番地,
     全社員住所歴マスタ.[マンション等], ([全社員住所歴マスタ].[都道府県] & ([全社員住所歴マスタ].[市区町村]) & [全社員住所歴マスタ].[番地] & ([全社員住所歴マスタ].[マンション等])) AS 全住所,
    DateDiff("yyyy",[生年月日],Date())+(Format([生年月日],"mmdd")>Format(Date(),"mmdd")) & "歳" AS 年齢, 全社員住所歴マスタ.登録日
    FROM 社員マスタ LEFT JOIN 全社員住所歴マスタ ON 社員マスタ.社員番号 = 全社員住所歴マスタ.社員番号
    WHERE (((全社員住所歴マスタ.登録日)=DMax("登録日","全社員住所歴マスタ","社員番号 =" & [全社員住所歴マスタ].[社員番号])) AND ((社員マスタ.退職の有無)=False));

    [全社員住所歴マスタ].[社員番号]がnullになるレコードがあるのでは?

  • 2
    hatch 2021/04/06 (火) 13:48:39 0d922@b524f

    hiroton様
    回答いただき誠にありがとうございます。
    私も原因がそれだと思い探したのですが社員番号がnullになるのはありませんでした。。。

  • 3
    りんご 2021/04/06 (火) 14:24:29 48103@0e907

    素人がググっただけですが、社員番号がnullになるものが無くても、LEFT JOINの結果、組み合わせでnullになっているせいとか?

  • 4
    hiroton 2021/04/06 (火) 14:36:50 修正 6edc5@f966d
    SELECT 社員マスタ.社員番号, 全社員住所歴マスタ.社員番号, 社員マスタ.氏名, 社員マスタ.入社年月日, 社員マスタ.生年月日, 全社員住所歴マスタ.郵便番号,
     全社員住所歴マスタ.都道府県, 全社員住所歴マスタ.市区町村, 全社員住所歴マスタ.番地,
     全社員住所歴マスタ.[マンション等], ([全社員住所歴マスタ].[都道府県] & ([全社員住所歴マスタ].[市区町村]) & [全社員住所歴マスタ].[番地] & ([全社員住所歴マスタ].[マンション等])) AS 全住所,
    DateDiff("yyyy",[生年月日],Date())+(Format([生年月日],"mmdd")>Format(Date(),"mmdd")) & "歳" AS 年齢, 全社員住所歴マスタ.登録日
    FROM 社員マスタ LEFT JOIN 全社員住所歴マスタ ON 社員マスタ.社員番号 = 全社員住所歴マスタ.社員番号
    WHERE 全社員住所歴マスタ.社員番号 IS NULL;
    

    このクエリを実行するとエラーは表示されますか?または、レコードが表示されませんか?

  • 5
    hatch 2021/04/07 (水) 09:37:49 0d922@b524f

    解決しました!!
    リレーション先登録されている社員番号と一致しないせいでエラーが出ていました・・・
    同じように登録するとエラーなしで表示されました!
    お手数をお掛けし申し訳ありません。