2

「Patients」という名前のテーブルがあります。

  PatientName    DateOftest    Eye     L1    L2    L3    L4     L5
    Mike         17-02-2009     L      23    25    40    32     30
    Mike         17-02-2009     R      25    30    34    35     24
    Bill         08-03-2006     L      20    24    30    24     25
    Bill         08-03-2006     R      18    25    27    30     24

ここで、Iamは、患者名と検査日、および眼を「両眼」とその検査日のL1、L2、L3、L4、L5の最高値の合計である「合計」として選択する結果を求めています。

結果:

  PatientName    DateOftest      Eye          Sum
    Mike         17-02-2009    Binocular      160    
    Bill         08-03-2006    Binocular      130

ここで、「合計」は、マイクの左目と右目からの最高値の合計であり、160であり、ビルは130です。

4

4 に答える 4

2
DECLARE @Data AS TABLE
(
    PatientName varchar(10) NOT NULL,
    DateOfTest  date NOT NULL,
    Eye         char(1) NOT NULL,
    L1          tinyint NOT NULL,
    L2          tinyint NOT NULL,
    L3          tinyint NOT NULL,
    L4          tinyint NOT NULL,
    L5          tinyint NOT NULL
)

INSERT @Data
VALUES 
    ('Mike', '20090217', 'L', 23, 25, 40, 32, 30),
    ('Mike', '20090217', 'R', 25, 30, 34, 35, 24),
    ('Bill', '20060308', 'L', 20, 24, 30, 24, 25),
    ('Bill', '20060308', 'R', 18, 25, 27, 30, 24);

SELECT
    d.PatientName,
    d.DateOfTest,
    Eye = 'Binocular',
    [Sum] = MAX(L1) + MAX(L2) + MAX(L3) + MAX(L4) + MAX(L5)
FROM @Data AS d
GROUP BY
    d.PatientName,
    d.DateOfTest;

出力

于 2013-02-11T05:55:58.990 に答える
1
  SELECT PatientName, DateOfTest, "Binocular" AS Eye,
         MAX(L1 + L2 + L3 + L4 + L5) AS [Sum]
    FROM Patients
GROUP BY PatientName, DateOfTest, Eye
于 2013-02-11T03:49:10.353 に答える
0

GROUP BYおよびを使用してこれを試してくださいMAX

SELECT PatientName, 
   DateOfTest,
   MAX(L1) + MAX(L2) + MAX(L3) + MAX(L4) + MAX(L5) SummedVal,
   'Binocular' Eye
FROM Patients
GROUP BY PatientName, DateOfTest, Eye

これが簡単なフィドルです。

また、MAX(L1 + L2 ...)とMAX(L1)+ MAX(L2)の使用の違いに注意してください...-最初の方法では正しい結果が得られません。

幸運を。

于 2013-02-11T03:51:10.273 に答える
0

これは列全体を検索するのではなく、特定の日付と特定の患者の最大値を検索します。これは、ここでgroupを使用しているためです。

select PatientName,
       DateOftest,
       Max(L1)+Max(L2)+Max(L3)+Max(L4)+Max(L5) as Sum,
      'Binocular' Eye 
from table 
group by PatientName,DateOftest,Eye 
于 2013-02-11T05:39:16.327 に答える