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

现在,我会在结果之后选择患者姓名和测试日期,并将眼睛选择为“双目”和“总和”,这是该测试日期 L1、L2、L3、L4、L5 的最高值的总和。

结果:

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

这里的“sum”是 Mike 左右眼的最高值之​​和,即 160,Bill 为 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 BYand MAX

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

这是一个快速的Fiddle

请注意使用 MAX(L1+L2...) 与 MAX(L1) + MAX(L2) ... 的区别 - 第一个不会产生正确的结果。

祝你好运。

于 2013-02-11T03:51:10.273 回答
0

这不会搜索整个列,而是搜索特定日期和特定患者的最大值。因为我们在这里使用 group by。

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 回答