|
>1、解決済み
>SELECT M.名前, M.会社名, S.変更前
>FROM 氏名 AS M LEFT JOIN 会社名称変換 AS S ON M.名前 = S.変更前
>WHERE (((S.変更前) Is Null));
>2、解決済み
>SELECT T1.名前, IIf(IsNull(T2.変更後)=True,T1.会社名,T2.変更後) AS 社名
>FROM 氏名 AS T1 LEFT JOIN 会社名称変換 AS T2 ON T1.名前 = T2.変更前;
>これらをうまく組み合わせれば実現しそうなんですが
>なんどやってもわかりません
上記の2つのクエリは、FROM句が同じなので、
あとは、SELECT句とWHERE句を適宜指定してやるだけです。
例えば、
SELECT T1.ID
,IIf(IsNull(T2.変更後)=True,T1.支払コード,T2.変更後) AS 新コード
,T1.金額
FROM 氏名 AS T1
LEFT JOIN 会社名称変換 AS T2
ON T1.支払コード = T2.変更前
WHERE T2.変更前 Is Null;
です。
このSQL文だと、
T1.ID|新コード|金額
1 |A0001 |300
2 |B0002 |400
5 |A0001 |300
というクエリになります。このクエリをベースにした集計クエリを作ってやれば、
結果クエリ
A0001 |600
B0002 |400
というクエリを得られます。
>2.変更前から変更後に入力されている物は支払コードのみ振返る(解決)
についてですが、上記のSQL文だと、
「変更前」フィールドに値のあるレコードはWHERE句によって除外されるので、
支払コードの振替が生じるようなレコードは返されません。
もし、
>2.変更前から変更後に入力されている物は支払コードのみ振返る(解決)
というレコードも抽出したいのであれば、
抽出条件をよくよく考え直す必要があります。
|
|