【发布时间】:2016-03-12 00:52:32
【问题描述】:
原始表的规则存储在一个名为 md_formula 的表中,用于映射到目标表中
删除/创建/插入raw_dbs_transactiondetailscash:
DROP TABLE raw_dbs_transactiondetailscash
CREATE TABLE raw_dbs_transactiondetailscash(
accountnumber VARCHAR(100),
referencecurrency VARCHAR(100),
transactiondate datetime)
INSERT INTO raw_dbs_transactiondetailscash(
accountnumber, referencecurrency, transactiondate)
SELECT 'XYZ','$','01/01/2016'
删除/创建/插入md_formula:
DROP TABLE MD_Formula
CREATE TABLE MD_Formula (
Format VARCHAR(20),
tbl_Src VARCHAR(200),
Col_src VARCHAR(500),
tbl_Des VARCHAR(200),
Col_des VARCHAR(100),
Condition VARCHAR(500) )
INSERT INTO md_formula(format, tbl_src, Col_src, tbl_des,Col_des)
SELECT 'Dbs','raw_dbs_transactiondetailscash','accountnumber',
'normalized_transaction','account_number'
UNION ALL
SELECT 'Dbs','raw_dbs_transactiondetailscash','referencecurrency',
'normalized_transaction','currency'
UNION ALL
SELECT 'Dbs','raw_dbs_transactiondetailscash','transactiondate',
'normalized_transaction','trade_date'
从存储在 md_Formula 中的原始表中获取数据
通过TSQL(仅选择一列作为示例)
这将实际执行
SELECT accountnumber
FROM raw_dbs_transactiondetailscash
并从raw_dbs_transactiondetailscash 表中获取一组数据
DECLARE @sql VARCHAR(100)
SELECT TOP 1 @sql= 'SELECT '+Col_src+ ' FROM '+tbl_Src FROM MD_Formula
EXEC (@sql)
ViaPostgres(仅准备动态查询,动态sql如何从原始表中获取数据还是个问题)
这个需要执行
SELECT accountnumber,referencecurrency,transactiondate
FROM raw_dbs_transactiondetailscash
得到结果
SELECT 'SELECT '|| string_Agg(col_src,',') ||' FROM ' || tbl_src FROM md_formula
WHERE format='Dbs'
GROUP BY tbl_src
【问题讨论】:
-
请将您的表格定义发布为格式化文本,而不是屏幕截图的链接。您还需要添加查询的预期输出,我不知道您要实现什么
标签: sql postgresql dynamic-sql