我有这样的表:
学生:
<!DOCTYPE html>
<html>
<head>
<script src='code.js'></script>
</head>
<body>
<center>
<h1>GGD calculator</h1>
<p>Reken de Grote Gemene Deler uit van <input type='number' id='input1'> en <input type='number' id='input2'>.</p>
<br>
<input type='button' value='Bereken!' onClick='bereken()'>
</center>
</body>
</html>
我想要做的是将ID|NAME |FOOD |Score
1 |FRED |Apple|23
1 |FRED |Pear |50
2 |HENRY |BERRY|20
3 |Alex |Apple|40
更改为'混合',让所有学生吃超过1 不同FOOD
。所以结果看起来像这样:
FOOD
有什么想法吗?
答案 0 :(得分:1)
您可以将group by
和iif
与count
条件一起使用:
select [ID],
[NAME],
iif(count([FOOD]) > 1, 'MIXED', [FOOD]) as [FOOD],
sum([Score]) as [Score]
from [Students]
group by [ID],
[NAME]
如果count(distinct [FOOD])
条目可以针对相同的FOOD
和ID
重复,则应使用NAME
。
答案 1 :(得分:1)
使用GROUP BY可能会有你想要的。这是一个巧妙的小窍门,看看是否有不同的价值观&#39;在一行以上
在您的数据上试试这个
SELECT
ID
,NAME
,CASE
WHEN MIN(FOOD) <> MAX(FOOD)
THEN 'MIXED' ELSE [FOOD]
END AS FOOD
,SUM(Score) AS Score
GROUP BY
ID
,NAME
答案 2 :(得分:1)
使用case
<强> DEMO 强>
SELECT
id
, name
, CASE WHEN COUNT(1) > 1 THEN 'MIXED' ELSE MAX(FOOD) END AS Food
, SUM(Score) AS Score
FROM dbo.students
GROUP BY id, name
ORDER BY id