【发布时间】:2015-06-03 15:05:41
【问题描述】:
我有以下表格。
Program Table -
prog_ID,
prog_Name
Unit Table -
unit_ID,
unit_name,
prog_ID
max-beds
max-budgeted-beds
max-unbudgeted-beds
max-escalation-beds
Import_Data Table -
bed_ID,
unit_ID
Bed Table -
bed_ID,
bed_type_ID
Bed Type Table -
bed_type_ID,
bed_type
我正在尝试编写一个查询,该查询将为我提供每个程序中的总床位数。
例子
Program | Bed Count
-------------------
MED 30
REH 25
SUR 36
我有一个查询,它为我提供了每个单元的所有床位,但我想深入了解程序。出于某种原因,我只是对此一无所知。
提前感谢您的帮助!
附录
我正在尝试将以下内容确定为输出中的列标题:
Occupied Beds
--Total Occupied Beds
(SUM(CASE WHEN Bed_Type.bed_type_description = 'Regular' THEN 1 ELSE 0 END)) As 'Total Occupied'
Budgeted Beds
--OCCUPIED BUDGETED BEDS
(SUM WHEN < MAX_BUDGETED),(CASE WHEN (SUM (CASE WHEN Bed_Type.bed_type_description = 'Regular' THEN 1 ELSE 0 END)) < UNIT.unit_beds_max_budgeted THEN (SUM (CASE WHEN Bed_Type.bed_type_description = 'Regular' THEN 1 ELSE 0 END)) ELSE Unit.unit_beds_max_budgeted END) AS 'Occupied Budgeted Beds'
Unbudgeted Beds
--OCCUPIED UNBUDGETED BEDS
, (CASE WHEN (SUM (CASE WHEN Bed_Type.bed_type_description = 'Regular' THEN 1 ELSE 0 END)) > UNIT.unit_beds_max_budgeted THEN Unit.unit_beds_max_unbudgeted + Unit.unit_beds_max_budgeted - (SUM (CASE WHEN Bed_Type.bed_type_description = 'Regular' THEN 1 ELSE 0 END)) ELSE 0 END) AS 'Occupied Unbudgeted Beds'
我在此处围绕对“Unit.unit_beds_max_budgeted”的引用出现错误,我不知道为什么。我在一个不同的查询中使用这个逻辑,但是这个输出给了我这样的每个单元:
Program Unit Occupied_Beds Budgeted_Beds Unbudgeted_Beds
---------------------------------------------------------------
MED A2 44 42 2
MED A3 34 32 2
CCC B2 44 42 2
CCC B3 34 32 2
但是,我想要的输出是将 MED 和 CCC 作为一行,并将值汇总(并排除单元名称)。
非常感谢任何帮助,这让我大吃一惊,我觉得这应该很容易,但我无法得到它。我是否缺少建立链接的必要字段?提前致谢。
【问题讨论】:
-
(a) 你不应该在代码中使用
Bed_Type.bed_type_description,在代码中不要使用Bed_Type.bed_type.属性作为控制元素。属性变化。仅使用密钥。 (b)bed_type_description在您的表中不存在。 (c) 请格式化您的代码。 -
啊,我明白你的意思了。就像使用“WHEN Bed_Type.Bed_Type_ID = 1”,而不是描述“常规”。谢谢,我会换的!。
-
(a) 是的。但是那里有一个类似的问题,在下一个增量中,因为 ID 列不是 Key,它们是物理记录指针。如果您摆脱 ID 并使用逻辑键,您的代码将与更改隔离,否则它会被粘在物理存储值上。 (d) 为什么要将两个逻辑行塞进一个。当您获得三个程序时会发生什么。
-
(e) 单位没有床(只是坐在那里),然后导入会告诉您预订了哪些床? (f) BedType 的值是什么? (g) 日期呢?
标签: sql sql-server database relational-database