当前位置: 首页 > 面试题库 >

SQL查询:包含两个基于来自同一表的不同条件的求和

陈俊誉
2023-03-14
问题内容

我目前有以下sql查询

SELECT [Date], DATENAME(dw,[Date]) AS Day, SUM(Units) AS TotalUnits
FROM tblTimesheetEntries 
WHERE UserID = 'PJW' 
AND Date >= '2013-01-01' 
GROUP BY [Date] 
ORDER BY [Date] DESC;

它返回给定用户和日期的总计[单位]。

但是,我想根据新的标准(即[Units]是否在“可充电”位置)来生成两个单独的总计单位。tblTimeSheets中有一个称为Chargeable的字段,它是一个布尔值(true表示chargeable,false表示false)。如何将其合并为每种类型的单位显示两个总和?


问题答案:

您可以将CASE与一起使用SUM()来计算单独的总计:

SELECT [Date], 
    DATENAME(dw,[Date]) AS Day, 
    sum(case when Chargeable = 1 then Units else 0 end) ChargeableTotal,
    sum(case when Chargeable = 0 then Units else 0 end) NotChargeableTotal,
    sum(Units) AS TotalUnits
FROM tblTimesheetEntries 
WHERE UserID = 'PJW' 
    AND Date >= '2013-01-01' 
GROUP BY [Date] 
ORDER BY [Date] DESC;


 类似资料:
  • 我有桌子: 行程:Trip_Num、Trip_Type等 用户的出差历史记录:Username、Trip_Num等 我正在用php做一个项目,需要为一个特定的用户(通过他的用户名)做一个SQL查询--需要知道用户的Trips历史表中Trip_Num的Trip_Type。 附上我的表格: 更新:我需要计算trip_type中的每个值。我的意思是我想看到“步行”-4次,“自行车”-3次,这很好?...

  • 问题内容: 该表包含一个ID列,valueHeading列和一个value列。我想将value列分为两个新列,分别称为valueHeading1和valueHeading2,具体取决于值具有哪种valueHeading类型。 所以我想加入这个选择: 编辑:完全加入 使用此选择: 在各自的ID上。我该怎么做呢? 编辑 以说明我要执行的操作: 原始表格: 新表: 问题答案: 在SQLServer200

  • 我编写了一个查询,用于查找特定班级中某一性别的学生人数,但我无法找到一种方法来编写可以对两种性别执行相同操作的查询。我尝试编写两次查询(针对每个性别),然后使用UNION将它们组合起来,但也无法做到这一点。 查询# 1 结果: 查询#2 结果: 我希望输出如下,最好使用一个查询: 谢谢你。

  • 我在StackOverflow上找到了一大堆关于条件WHERE子句的答案,但是我找不到一个对我的问题有点特殊的答案,所以我只是想寻求一些帮助。。。 我公司的网站包含所有直接写在C#代码中的SQL查询(我不喜欢,但那是另一回事) 表单中有一组复选框(目前有3个选项,但此列表可能会增加)。对于选择的每个“提供者类型”,需要向WHERE子句添加一个附加条件,但我不确定如何最好地处理这个问题。 下面是处理

  • 问题内容: 我有3张桌子,每个国家和地区都有它的代币 还有这些国家中所有湖泊和所有山峰中的一个的表。 我现在必须说明山峰少于湖泊的国家。我现在尝试了几个小时,但找不到解决此问题的方法。我试图将3个表连接在一起- 但我不知道下一步该怎么做。我确定我必须使用嵌套的SQL命令。 这是我对每个国家的湖泊和山脉计数的尝试 但是以某种方式,两个列的count(Geo_lake.country)和count(G

  • 问题内容: 我有一个要求,我需要限制从表返回的特定标志和所有记录的其他标志值的记录数。 例如:table有一个名为的元素,可能的值为’m’和’o’。 我只需要返回10条“ o”记录和所有“ m”记录。 我正打算为此与工会写一个查询。像这样: 这可能吗?请注意,它是一个JPA查询。(contact_history是对象名称) 任何其他更好的建议,欢迎您! 问题答案: 不,这对于JPQL是不可能的,因