ACCESSを活用して商品変動を追いたい(別3)
達人様
重ね重ね恐縮です。
以下構文について、
氏名、電話番号が同じお客様の場合で、
商品コード、商品名が前のリストから変わったリストのみ
を、
↓
電話番号が同じお客様の場合で、
商品コード、商品名が前のリストから変わったリストのみ
に条件をこちらも変えられますでしょうか。
http://okwave.jp/qa/q8783133.html
SELECT T1.受付日, T1.受付日-T2.受付日 AS 切り替え,
T1.氏名, T1.電話番号, T1.商品コード, T1.商品名, T1.数量, T1.価格 FROM
(SELECT Q1.*, Q3.CT FROM (★★ AS Q1 INNER JOIN
(SELECT 氏名, 電話番号 FROM ★★
GROUP BY 氏名, 電話番号
HAVING Min(商品コード & 商品名)<>Max(商品コード & 商品名)
) AS Q2 ON Q1.氏名=Q2.氏名 AND Q1.電話番号=Q2.電話番号)
INNER JOIN
(SELECT 受付日, 氏名, 電話番号, Count(*) AS CT FROM ★★
GROUP BY 受付日, 氏名, 電話番号) AS Q3
ON Q1.受付日=Q3.受付日 AND Q1.氏名=Q3.氏名 AND Q1.電話番号=Q3.電話番号
) AS T1
LEFT JOIN
(SELECT 受付日, 氏名, 電話番号, Count(*) AS CT FROM ★★
GROUP BY 受付日, 氏名, 電話番号) AS T2
ON T1.氏名=T2.氏名 AND T1.電話番号=T2.電話番号 AND T1.受付日>T2.受付日
WHERE T2.受付日 Is Null OR (T2.受付日=
(SELECT Max(受付日) FROM ★★ WHERE 氏名=T1.氏名 AND 電話番号=T1.電話番号 AND 受付日<T1.受付日)
AND
IIF(T1.CT<T2.CT,True,
T1.商品コード & T1.商品名 Not In
(SELECT 商品コード & 商品名 FROM ★★ WHERE 受付日=T2.受付日 AND 氏名=T1.氏名 AND 電話番号=T1.電話番号)
))
ORDER BY T1.氏名, T1.電話番号, T1.受付日;
お礼
ありがとうござます!やっぱりそういう方法になるんですね。