【发布时间】:2015-08-18 19:32:57
【问题描述】:
我正在为我工作的医院处理药物信息。计算抗生素的治疗天数 (DOT)。我正在尝试开发一系列查询,这些查询将为我提供以下信息
- DOT 按月,DOT 按年
- DOT 按月、按年按单位
- DOT by Drug by Unit by Month, by Year.
我的星表以一种很好的方式为我提供了这些数据。我遇到的问题是逐月和逐年我并不总是拥有相同的单位和相同的药物。因此,我很难找到一种组织它的方法,以便可以轻松地绘制图表。由于几个月或几年丢失了一些部分,它不能很好地/容易地绘制图表。例如,我想要一个折线图,其中每条线是年,我的 X 轴是月/单位,我的 Y 轴是 DOT。
我有 DIMENSION 表,其中包含我正在跟踪的所有单位和所有药物。但不知何故,我必须让我的 STAR 表(输出)包含数据库查询未返回的单位和药物。
这是我正在使用的表格和数据:
DIM_DRUG_NAME
-drug_name_ID, drug_name_long, drug_name_short
FACT_AMS_DOT_Baseline
- location_ID, DOT, drug_name_short, dispense_date
DIM_DATE
-this table contains a number of ways to convert and match dates
-I mainly use Year, Num_Month, Month_Short (Month short is a MMM format)
DIM_LOCATION
-location_ID, Location_Name, Location_Mnemonic
我想在输出中包含的字段是:
Med_Name_Short
Location
Sum(DOT)
MonthShort
Year
我将基线加入到 Dim_Date 表中,其中 Baseline.Dispense_Date = Dim_Date.Date
我希望这些信息能有所帮助且有意义。 非常感谢任何输入。我有一种感觉,我需要在我的输出查询中加入一个 WHERE 子句,在该子句中我将基线中的所有数据与所有单位/药物进行比较,然后如果未找到,则默认输出行为 0 - 这将确保每个 Year-block的数据将始终具有相同数量的返回值。
提前致谢。
这里的要求是我的选择声明
SELECT
Baseline.Med_Name_Short ,
Baseline.Location ,
SUM(DOT) AS 'DOT' ,
tdate.MonthShort ,
tDate.Year
INTO STAR_AMS_DOT_By_Drug_By_Unit_MTM
FROM
STAR_AMS_DOT_BASELINE Baseline
INNER JOIN DIM_Date tDate ON Baseline.Dispense_Date = tDate.Date
GROUP BY
Med_Name_Short ,
tDate.Num_Month ,
tdate.MonthShort ,
tDate.Year ,
Baseline.location
ORDER BY
Baseline.Med_Name_Short ,
tDate.Year ,
tDate.Num_Month ,
Baseline.Location
希望对您有所帮助, 再次感谢。
【问题讨论】:
-
显示您的
Select声明。你需要做一个outer Join。 -
选择语句添加到原始块中。
标签: sql sql-server excel tsql excel-2010