SQL Serverにアクティブカードと非アクティブカードを持つ顧客が存在するテーブルがあります。顧客がカードを1つしか持たない場合は、1つの行が返されます。顧客が複数のカードを持っている場合は、アクティブカードの行をどのように返すのですか?両方のカードの合計金額はどのように戻しますか?重複から特定の値を返すSQLクエリ
例:
----------------------------------------
CUSTOMER | CARD | AMOUNT | STATUS
----------------------------------------
JOHN DOE | 101 | 100 | 1
JOHN DOE | 102 | 200 | 2
JANE DOE | 103 | 100 | 2
所望の出力:
----------------------------------------
CUSTOMER | CARD | AMOUNT | STATUS
----------------------------------------
JOHN DOE | 101 | 300 | 1
JANE DOE | 103 | 100 | 2
- ステータス= 1は、Active、ステータス= 2があれば、私は唯一、1カードが必要になります非アクティブ
を意味意味します顧客は複数ある、私はアクティブカードだけを取得したいが、私はすべての累積額が必要カード。上の表では、両方のカード(300)でジョンの購入総額を取得したいが、アクティブカード(101)の行のみを返す。
私がここで見つけた解決策を試しましたが、復帰したい値の条件があるため、私の要件は少し異なります。
Query to return 1 instance of a record with duplicates
SQL query to return one single record for each unique value in a column
量に関してHow to return a single transaction per customer
が、私は、後に顧客IDを使用して両方のカードの累積量を配置することができますが、何があります私にとって今重要なのは、顧客が複数のカードを持っている場合、アクティブなカードだけを返すことができることです。
ここで私が働いているクエリです:
select customer, card, sum(amount), min(active)
from transactions
group by customer, card, active
ありがとう!