0
私はcustomeridに基づいて顧客(tcustomers)のテーブルを持っています。私は購入履歴(tpurchasehist)と顧客IDを持つ別のテーブルを持っています。最初のテーブルに「Gold Member」というラベルのついたtwpカラムを追加しようとしています。購入列のエントリが '%Gold%'のようなもので、購入列の最新列が '%Purchased%'や '%Returned%'のようなものであれば、値は 'Yes'となります。私の問題は、カスタマーIDごとに複数の購入エントリがあるため、重複を作成せずに左の結合を行う方法を理解できないようです。SQL - 重複を作成せずに新しい列に結合する
SELECT tcustomers.custid 'Customer ID',
tcustomers.custname 'Name',
CASE
WHEN th.purchases LIKE '%Purchased%' THEN 'Customer Made a Purchase'
WHEN th.purchases like '%Returned%' THEN 'Customer Made a Return'
END 'Recent Activity',
CASE
WHEN th.purchases LIKE '%Gold%' THEN 'Yes'
END 'Gold Member?'
FROM tcustomerss
LEFT JOIN (
SELECT DISTINCT th.custid, purchases, updated
FROM tpurchasehist
WHERE purchases LIKE '%Purchased%'
or purchases like '%Returned%'
or purchases like '%Gold%')
) th ON tcustomers.custid = th.custid
お客様ごとに複数の購入イベントが存在するケースを処理するロジックを教えてください。この問題は自動的には解決されません。 –
あなたの例は無効な標準SQLです。どのDBMSを使用していますか? –