sql查询中的计数
所以我有一张像这样的桌子 现在,当在一个充满uv='owner'的组合框中进行选择时,我需要将其打包到datagridview中。 如果我选择uv eg MG。我得到了他所有的文件/档案的清单,以及他花在文件上的时间 我使用此查询执行此操作:sql查询中的计数,sql,visual-studio,datagridview,Sql,Visual Studio,Datagridview,所以我有一张像这样的桌子 现在,当在一个充满uv='owner'的组合框中进行选择时,我需要将其打包到datagridview中。 如果我选择uv eg MG。我得到了他所有的文件/档案的清单,以及他花在文件上的时间 我使用此查询执行此操作: SELECT kbpres.uv, dbo.doss.dosno, SUM(dbo.kbpres.uur) AS somuur, SUM(dbo.kbpres.minuut) AS somminuut,
SELECT kbpres.uv,
dbo.doss.dosno,
SUM(dbo.kbpres.uur) AS somuur,
SUM(dbo.kbpres.minuut) AS somminuut,
CAST (( SUM(dbo.kbpres.uur) + SUM(dbo.kbpres.minuut) / 60 ) AS VARCHAR(4)
) +
'u ' + CAST (( SUM(dbo.kbpres.minuut) % 60 ) AS VARCHAR(2)) + 'm' AS
[derivedColumn],
doss.behdr
FROM dbo.kbpres
INNER JOIN dbo.doss
ON dbo.kbpres.ino = dbo.doss.ino
WHERE ( dbo.kbpres.uv LIKE @cboBeheerder )
GROUP BY kbpres.uv,
dbo.doss.dosno,
doss.behdr
(尽管我只想通过UV进行分组,并且还必须添加dosno和behdr??)
现在的问题是,我如何计算正确的成本,因为每个记录的成本不同。
对于MG而言,这将是:
10*60用于Dos88888
66666为20*76
60*10+(28小时+10分钟*10)+10*2用于12345
你知道这是否可能吗
SELECT dosno,
SUM(uur)*60 + SUM(minuut) AS Time,
(SUM(uur)*60 + SUM(minuut)) * cost AS TotalCost
FROM dbo.kbpres k
INNER JOIN dbo.doss d ON k.ino = d.ino
GROUP BY dosno,k.ino,d.ino,cost
WHERE k.uv = 2
因为成本似乎是紫外线和剂量的函数
SELECT dosno,SUM(Time) AS Time,SUM(TotalCost) AS TotalCost FROM
(
SELECT dosno,
uur*60 + minuut AS Time,
(uur*60 + minuut) * cost AS TotalCost
FROM dbo.kbpres k
INNER JOIN dbo.doss d ON k.ino = d.ino
GROUP BY dosno,k.ino,d.ino,cost
WHERE k.uv = 2
) t
GROUP BY dosno
请将数据粘贴为数据,而不是图片…是的,我看不到工作中的图片:(对我来说,它说成本应该是一个聚合值或一个分组值。这是真的有必要还是我的查询没有正确地构建?按成本分组。我假设成本是每分钟的一个值,所以我只是简单地展示了如何将聚合值相加和相乘-总和(…)值…以获得您正在寻找的结果。我还认为,每个dosno的每个uv的成本是相同的,但事实上它是不同的。我将相应地更新。我尝试了此操作,但总是出现错误,因此我只尝试了内部选择,它仅在我将uur和MINUT添加到groupby中时才起作用,但随后我有了26行不使用justy one:选择d.dosno,k.uur*60+k.minut作为时间,(k.uur*60+k.minut)*k.prijs作为dbo.kbpres的总成本作为k内部连接dbo.doss作为k.ino=d.ino上的d,其中(d.dosno='93690')按d.dosno,k.ino,d.ino,k.prijs,k.uur,k.minut分组