所以我在ETL作业中遇到一些问题,我试图查询一条语句,包括创建带有相邻插入的volatile表(VT)。
尽管我不确定如果您没有“ SET NOCOUNT ON”的问题,那么我认为我遇到的问题等同于MS-SQL临时表插入->即插入到VT的行数将返回到我的光标,而不是使用VT的查询。
我不能使用CTE(不要以为可以),因为我将透视结果插入VT,因为我需要能够引用主选择中的列。
我无法创建视图,因为这是银行核心解决方案的托管系统;换句话说,除了阅读,我除了从视图中合成数据并提取数据外,别无选择。 出于同样的原因,我无法创建存储过程。
我已经用2,5种语言在世界各地搜索了一半,但找不到与“ SET NOCOUNT ON”等效的Teradata。
我正在从Azure数据工厂触发负载,并且我拥有一个On Prem自托管集成运行时,以确保与TeradataDB的连接。
不用说Teradata不是我的强项,我希望你们能提供一些帮助:)
提前!非常感谢!
编辑:
这是查询的结构:
Create volatile table StackOverflowTable
(
Key1(40),
Pivot1 float,
Pivot2 float,
Pivot3 float
)primary index (Key1) ON COMMIT PRESERVE ROWS;
;
insert into StackOverflowTable
select *
from
(
select atv.row1 Key1
, atv.row2
atv.row3
, row_number() over(partition by atv.row1 order by atv.row2 desc) RowNum
from aTeradataView atv
)s1
Pivot
(
sum(s1.row2) amt1,
sum(s1.row3) amt2
for RowNum in(1,2,3,4)
)p
;
with cte as
(
select av.row_av_1
, av.row_av_2
, av.row_av_3
, av.row_av_4
, av.ReportDate
from anotherView av
)
select cte.row_av_1
, cte.row_av_2
, cte.row_av_3
, cte.row_av_4
, sf.Pivot1
, sf.Pivot2
, sf.Pivot3
, cte.ReportDate StartLoadDate
, '9999-12-31' EndLoadDate
from cte
inner join StackOverflowTable sf on sf = cte.row_av_1
;
DROP TABLE StackOverflowTable
;