2017-10-25 10 views
1

SQL Serverに書き込むスクリプトに関する質問があります。私はクライアントと呼ばれるテーブルをたくさんのクライアントに持っています。テーブルには、クライアントID、供給、dob、購入日などのフィールドがあります。年齢と供給元でクライアントをグループ化するSQLスクリプトの作成方法を教えてください。

私はクライアントを引き出し、年齢(18歳未満、18歳以上)でグループ化して購入するスクリプトを作成する必要があります。各クライアントは1つの電源を持っていますが、複数回購入することができます。

私は生年月日と購入日に基づいて年齢を指定する関数を作成しました。

私がこれまで持っているクエリは次のとおりです。

SELECT 
    DATEDIFF(Year, dob, purchase date) AS age, fixed.Date.Year, 
    supply, client id, dob, purchase date 
FROM 
    client 

私は私に次のような結果が得られたクエリをプルする必要があります。

Supply, number of times purchased,  age 

私は年齢によってクライアントをグループ化されている問題(集計)。私は彼らが各列で個別に戻ってくるのを望んでいない、私は供給と年齢でそれらをグループ化したい。

答えて

0

あなたが期待している結果はわかりませんが、CASE文は年齢に応じてグループと一緒に使用するとうまくいくようです。

SELECT 
    DATEDIFF(Year, dob, purchase date) AS age, [Other columns] 
FROM 
    client 
GROUP BY 
    CASE 
    WHEN DATEDIFF(Year, dob, purchase date) < 18 THEN '<18' 
    WHEN DATEDIFF(Year, dob, purchase date) >= 18 THEN '>=18' 
    END, [Other columns] 
+0

私が必要としていたもの。どうもありがとう! –

関連する問題