0

1 日の総患者数の rdlc レポートを作成しましたが、正常に動作しています。女性の男性患者の合計数がありますが、レポートがバインドされると、データの行数に等しい合計が返されます。
たとえば、レポートに 20 行ある場合、以下にカウントを出力すると、20 行でカウントが返されます。

1行だけにするにはどうすればよいですか?

これは私が使用しているクエリです:

SET ANSI_NULLS ON 
SET QUOTED_IDENTIFIER ON GO 

ALTER PROCEDURE [dbo].[Test_test_test]-- '2013/08/02' 
-- Add the parameters for the stored procedure here 
-- Add the parameters for the stored procedure here 
(@date VARCHAR(20)) 
AS 
  BEGIN 
      SET NOCOUNT ON; 
      SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; 

      SELECT ( CASE 
                 WHEN OLD_NEW_PATIENT.OLD_NEW = 'new' THEN 
                 PATIENT_REF_MASTER.PAT_ID 
                 ELSE NULL 
               END )                                                 AS 'new', 
             ( CASE 
                 WHEN OLD_NEW_PATIENT.OLD_NEW = 'old' THEN 
                 PATIENT_REF_MASTER.PAT_ID 
                 ELSE NULL 
               END )                                                 AS 'old', 
             ---------------------------------------- 
             ( CASE 
                 WHEN GENDER_MASTER.NAME1 = 'Female' THEN GENDER_MASTER.NAME1 
                 ELSE NULL 
               END )                                                 AS 
             'Females', 
             ( CASE 
                 WHEN GENDER_MASTER.NAME1 = 'Male' THEN GENDER_MASTER.NAME1 
                 ELSE NULL 
               END )                                                 AS 'Males', 
             ------------------------------------- 
             CONVERT(VARCHAR, PATIENT_REF_MASTER.CREATION_DATE, 105) AS 
             'creation_Date', 
             PATIENT_REF_MASTER.SR_NO                                AS 'sr_No', 
             PATIENT_MASTER.PAT_FNAME + ' ' 
             + PATIENT_MASTER.PAT_SNAME                              AS 'NAME', 
             DEPT_ID                                                 AS 
             'Dept_ID', 
             DEPT_MASTER.DEPT_NAME                                   AS 
             'Dept_Name', 
             DOC_MASTER.DOC_ID                                       AS 
             'Doc_Master', 
             DOC_MASTER.DOC_FNAME + ' ' 
             + DOC_MASTER.DOC_SNAME                                  AS 
             'Doc_Name' 
             , 
             PATIENT_MASTER.PAT_ADDR 
             AS 'addr', 
             GENDER_MASTER.NAME1                                     AS 
             'Pat_Sex', 
             PATIENT_MASTER.AGE                                      AS 'age', 
             (SELECT Count(PATIENT_REF_MASTER.SR_NO) 
              FROM   PATIENT_REF_MASTER 
              WHERE  PATIENT_REF_MASTER.CREATION_DATE = @date)       AS 'count', 
             (SELECT Count(PATIENT_MASTER.PAT_SEX) 
              FROM   PATIENT_MASTER 
                     LEFT JOIN PATIENT_REF_MASTER 
                            ON PATIENT_REF_MASTER.PAT_ID = 
                               PATIENT_MASTER.PAT_CODE 
              WHERE  PATIENT_REF_MASTER.CREATION_DATE = @date 
                     AND PATIENT_MASTER.PAT_SEX = 2)                 AS 
             'F_count', 
             (SELECT Count(PATIENT_MASTER.PAT_SEX) 
              FROM   PATIENT_MASTER 
                     LEFT JOIN PATIENT_REF_MASTER 
                            ON PATIENT_REF_MASTER.PAT_ID = 
                               PATIENT_MASTER.PAT_CODE 
              WHERE  PATIENT_REF_MASTER.CREATION_DATE = @date 
                     AND PATIENT_MASTER.PAT_SEX = 1)                 AS 
             'M_count' 
      FROM   PATIENT_REF_MASTER 
             LEFT JOIN DBO.OLD_NEW_PATIENT 
                    ON DBO.OLD_NEW_PATIENT.CODE = PATIENT_REF_MASTER.OLD_NEW 
             LEFT JOIN DBO.DEPT_MASTER 
                    ON DEPT_MASTER.DEPT_CODE = PATIENT_REF_MASTER.DEPT_ID 
             LEFT JOIN PATIENT_MASTER 
                    ON PATIENT_MASTER.PAT_CODE = PATIENT_REF_MASTER.PAT_ID 
             LEFT JOIN DOC_MASTER 
                    ON DOC_MASTER.DOC_ID = PATIENT_REF_MASTER.DOC_ID 
             LEFT JOIN GENDER_MASTER 
                    ON GENDER_MASTER.CODE = PATIENT_MASTER.PAT_SEX 
      WHERE  PATIENT_REF_MASTER.CREATION_DATE = @date 
      --MONTH(Patient_Ref_master.creation_Date)=@month and Dept_ID=@dept 
      ORDER  BY PATIENT_REF_MASTER.SR_NO ASC 
  --  select Dept_Master.Dept_Name as 'Dept_Name', 
  --  count(Pat_ID) as 'Pat_ID' 
  -- 
  -- from Patient_Ref_master 
  --left join dbo.Dept_Master  on   Dept_Master.Dept_code  =   Patient_Ref_master.Dept_ID 
  --where MONTH(Patient_Ref_master.creation_Date)=@month and Dept_ID=@dept 
  --group by Dept_Master.Dept_Name 
  END 
4

1 に答える 1