如何加入维度 table 的逆轴结果 table?
How to join an unpivot resulting table with a dimension table?
这是我的测试环境
select * from dbo.fact1
IdRecordRedcap
FechaRegistro
TotalPruebas
TotalPruebasPositivas
1
2022-01-06
510
384
2
2022-01-07
300
184
select * from dbo.DimMeasures
IdDimMeasures
NameMeasure
1
TotalPruebas
2
TotalPruebasPositivas
到目前为止,我能够 运行 包含 UNPIVOT
过程的查询,但我需要将它与 dbo.DimMeasures
结合起来,这样我才能得到 IdDimMeasures
每个 NameMeasure
--UNPIVOT dbo.fact1
SELECT u.FechaRegistro,
u.NameMeasure,
u.ValueMeasure
FROM dbo.fact1 as x
UNPIVOT
(
ValueMeasure
for NameMeasure IN
(
TotalPruebas,
TotalPruebasPositivas
)
) AS u
GO
FechaRegistro
NameMeasure
ValueMeasure
2022-01-06
TotalPruebas
510
2022-01-06
TotalPruebasPositivas
384
2022-01-07
TotalPruebas
300
2022-01-07
TotalPruebasPositivas
184
SELECT u.FechaRegistro,
u.NameMeasure,
u.ValueMeasure,
m.IdDimMeasures
FROM dbo.fact1 as x
UNPIVOT
(
ValueMeasure
for NameMeasure IN
(
TotalPruebas,
TotalPruebasPositivas
)
) AS u
LEFT OUTER JOIN dbo.DimMeasures AS m
ON m.NameMeasure = u.NameMeasure;
输出:
FechaRegistro
NameMeasure
ValueMeasure
IdDimMeasures
2022-01-06
TotalPruebas
510
1
2022-01-06
TotalPruebasPositivas
384
2
2022-01-07
TotalPruebas
300
1
2022-01-07
TotalPruebasPositivas
184
2
- 示例db<>fiddle(谢谢!)
这是我的测试环境
select * from dbo.fact1
IdRecordRedcap | FechaRegistro | TotalPruebas | TotalPruebasPositivas |
---|---|---|---|
1 | 2022-01-06 | 510 | 384 |
2 | 2022-01-07 | 300 | 184 |
select * from dbo.DimMeasures
IdDimMeasures | NameMeasure |
---|---|
1 | TotalPruebas |
2 | TotalPruebasPositivas |
到目前为止,我能够 运行 包含 UNPIVOT
过程的查询,但我需要将它与 dbo.DimMeasures
结合起来,这样我才能得到 IdDimMeasures
每个 NameMeasure
--UNPIVOT dbo.fact1
SELECT u.FechaRegistro,
u.NameMeasure,
u.ValueMeasure
FROM dbo.fact1 as x
UNPIVOT
(
ValueMeasure
for NameMeasure IN
(
TotalPruebas,
TotalPruebasPositivas
)
) AS u
GO
FechaRegistro | NameMeasure | ValueMeasure |
---|---|---|
2022-01-06 | TotalPruebas | 510 |
2022-01-06 | TotalPruebasPositivas | 384 |
2022-01-07 | TotalPruebas | 300 |
2022-01-07 | TotalPruebasPositivas | 184 |
SELECT u.FechaRegistro,
u.NameMeasure,
u.ValueMeasure,
m.IdDimMeasures
FROM dbo.fact1 as x
UNPIVOT
(
ValueMeasure
for NameMeasure IN
(
TotalPruebas,
TotalPruebasPositivas
)
) AS u
LEFT OUTER JOIN dbo.DimMeasures AS m
ON m.NameMeasure = u.NameMeasure;
输出:
FechaRegistro | NameMeasure | ValueMeasure | IdDimMeasures |
---|---|---|---|
2022-01-06 | TotalPruebas | 510 | 1 |
2022-01-06 | TotalPruebasPositivas | 384 | 2 |
2022-01-07 | TotalPruebas | 300 | 1 |
2022-01-07 | TotalPruebasPositivas | 184 | 2 |
- 示例db<>fiddle(谢谢!)