【发布时间】:2019-03-05 11:16:21
【问题描述】:
早安
我希望你能提供帮助。我已经设法在 Access 中实现了这一点,但在 SQL 中似乎失败了。
我目前的工作
在 Access 中,我创建了 1 个带有 2 个表的数据库:
- 数据库名称“所有投资组合 - 总值”
- 列名称:ID、value_date、external_ref、portfolio_name、value
- 数据库名称“VAL_File_Concatenate”
- 列名:value_date、external_ref、wrapper_name、model、value
在 Access 中的工作原理是将文本文件导入 VAL_File_Concatenate,然后执行以下代码:
INSERT INTO [All Portfolios - Total Values] ( value_date, external_ref, portfolio_name, [value] ) IN 'PATH TO DB'
SELECT [Val_File_Concatenate].value_date, [Val_File_Concatenate].external_ref, [Val_File_Concatenate] [Wrapper_Name] & " - " & [Model] AS portfolio_name, Sum([Val_File_Concatenate].value) AS SumOfvalue
FROM [Val_File_Concatenate]
GROUP BY [Val_File_Concatenate].value_date, [Val_File_Concatenate].external_ref, [Wrapper_Name] & " - " & [Model]
HAVING ((([Val_File_Concatenate].value_date) Is Not Null));
这会将 VAL_File_Concatenate 中的值复制到 All_Portfolios - Total Values 中的相关字段,但将 Wrapper_Name 和 Model 合并到 All Portfolio - Total Values 表中的 Portfolio_Name 字段中,并以“-”作为分隔符。
作为参考,VAL_File_Concatenate 如下所示:
Value_Date External_Ref Wrapper_Name Model Value
2019-03-01 Xxxxxxx/x GIA - Cash Liquidity 0.165
ALL Portfolio - Total Values DB 中的 Access 输出为:
Value_Date External_Ref Portfolio_Name Value
2019-03-01 Xxxxxxx/x GIA – Cash - Liquidity 0.165
我正在努力实现的目标
我已将数据库迁移到 SQL Server 2008,带有 2 个表的单个数据库。我正在努力解决的是通过合并 VAL_File_Concatenate 中的 Wrapper_Name 和 Model 字段在所有投资组合中创建 Portfolio_Name - Total Values 的查询部分。
非常感谢您提供的任何帮助。我尝试了各种方法,但似乎无法克服错误。
迈克
【问题讨论】:
-
嗨,戈登,它被标记为 SQL,这是我正在使用的数据库,但我添加了 SQL-Server-2008 和 Access。谢谢你的建议
-
@Shattered:“SQL”是一种查询语言,而不是数据库产品。每个关系数据库都是一个“SQL 数据库”。那么您使用的是什么? SQL Server 还是 MS Access?
-
SQL Server,我只是表示我在正在迁移到 SQL 的 Access 中工作。我使用的是 SQL 2008。所有命令都在 SQL 2008 中运行
-
@a_horse_with_no_name 为了清楚起见,我已经编辑过,希望不会引起进一步的混乱:)
标签: sql tsql sql-server-2008