有效的查询如下所示:
SELECT d.dosno,
CAST(SUM(k.uur) + SUM(k.minuut) / 60 AS VARCHAR(4)) + 'u ' +
CAST(SUM(k.minuut) % 60 AS VARCHAR (2)) + 'm' AS derivedColumn
FROM dbo.kbpres AS k INNER JOIN
dbo.doss AS d ON k.ino = d.ino
WHERE (d.dosno = '93690')
GROUP BY d.dosno
我想补充一点:
(SUM(k.uur) * 60 + SUM(k.minuut)) * k.prijs AS TotalCost
但是我应该根据我得到的错误将k.prijs添加到groupby中,但我不想要这个因为那时我得到21个结果而不是只有一个结果。
示例:
dosno uur minuut prijs
93690 0 5 2
93690 1 0 1
93690 0 10 2
93690 0 5 5
我需要的结果是:
93690 1:20 800
答案 0 :(得分:2)
答案是补充:
SUM((k.uur * 60 + k.minuut) * k.prijs) AS TotalCost
- 对于您的查询 - 这将得出每行的成本,然后将这些成本相加。
编辑:仅在soort为K的地方汇总prijs,添加:
SUM(case k.soort when 'K' then k.prijs end) AS FACKOSTEN
- 现有查询。
答案 1 :(得分:0)
当您GROUP
时,您正在根据字段值合并行。
如果您没有聚合或GROUP
字段,则查询引擎不知道要选择哪一行。您需要GROUP BY
该字段,或者决定如何选择要使用的 值prijs
。
显然有21个相应的值。
如果您提供有关您要完成的内容的更多信息,您将获得更好的答案。
答案 2 :(得分:0)
如果所有21个值的列prijs相同,那么如果你这样做
(SUM(k.uur) * 60 + SUM(k.minuut)) * MAX(k.prijs) AS TotalCost
然后我会给出理想的结果。