2016-03-22 6 views
0

SQLクエリで仮想計算列を制限したい。私はそれをどうやって行うのか分かりません。 ここに私のクエリ仮想計算列を制限する方法は?

select Distinct(Chief_Complaint), COUNT(Chief_Complaint) as 'No. of Cases 
Encountered(January)', COUNT(Chief_Complaint) as 'No. of Cases Encountered(February)' 
from Medical_Treatment 
group by Chief_Complaint 

がChief_Complaint私はCOUNT(Chief_Complaint)に制限を追加したい文字列

ある列のナンバー」など私の日付欄から1月である別個の値の数をカウントするだけでなく、COUNT(Chief_Complaint)で「No」とカウントするようにしました。遭遇したケース(2月) 'の月が2月の場合 それは可能ですか?申し訳ありません私の英語のため

ありがとうございました。

答えて

0

このようなものはあなたにとって役に立ちますか?

CREATE TABLE #Complaint(
    id     INT IDENTITY(1,1) 
    ,Chief_Complaint NVARCHAR(100) 
    ,ComplaintDate  DATETIME 
) 

INSERT INTO #Complaint 
    (Chief_Complaint, ComplaintDate) 
VALUES 
    ('Complaint1', '20160101') 
    ,('Complaint1', '20160101') 
    ,('Complaint1', '20160101') 
    ,('Complaint2', '20160101') 
    ,('Complaint2', '20160101') 
    ,('Complaint3', '20160101') 

    ,('Complaint1', '20160201') 
    ,('Complaint1', '20160201') 
    ,('Complaint2', '20160201') 
    ,('Complaint2', '20160201') 
    ,('Complaint2', '20160201') 


;WITH cteComplaints 
AS(
    SELECT 
     C.Chief_Complaint 
     ,CASE WHEN DATENAME(month, C.ComplaintDate) = 'January' 
      THEN COUNT(C.Chief_Complaint) 
     END 'January_CASES' 
     ,CASE WHEN DATENAME(month, C.ComplaintDate) = 'February' 
      THEN COUNT(C.Chief_Complaint) 
     END 'February_CASES' 
    FROM 
     #Complaint C 
    GROUP BY 
     C.Chief_Complaint,DATENAME(month, C.ComplaintDate) 
) 
SELECT 
    C.Chief_Complaint 
    ,SUM(ISNULL(C.January_CASES,0)) 'January_CASES' 
    ,SUM(ISNULL(C.February_CASES,0)) 'February_CASES' 
FROM 
    cteComplaints C 
GROUP BY 
    C.Chief_Complaint 

DROP TABLE #Complaint 
+0

あなたは私の質問をしなかったと思います。 私はすでに 'Medical_Treatment'というテーブルを持つデータベースを持っています。 私がしたいのは、私のselectステートメントを制限することです。 私はこのようにしたいと思っています。これが表であると仮定します。 Chief_Complaint/No。 (1月)/ No。 (2月) 腹部/ 3/5 – Jaypee

+0

あなたは私を失ってしまった。あなたのテーブルのスキーマを提供すると、私は何を手伝っているのか分かります。 –

+0

私の質問が分かりにくいのであれば申し訳ありません。 それをもっと分かりやすくしてほしい 6つの列を含むMedical_Treatmentという名前の表がありますが、それ以外の部分はそれほど重要ではないので、名前を2にします。 列は、明らかに日付型である日付と文字列であるChief_Complaintです。 Chief_Complaint列のすべてのデータには対応するDateがあります。今私は、私の日付の列の月に基づいてすべてのchief_complaintを数えたいと思う。 出力はChief_Complaint、1月の苦情、2月の苦情、3月の苦情など あなたが私を助けてくれることを願っています。 – Jaypee

関連する問題