【发布时间】:2009-10-28 19:21:47
【问题描述】:
我正在尝试通过对我们的会计软件进行数据挖掘来获得一份报告。
我们有一个表格,其中存储了给定期间(0-12,0 是从去年结转,1-12 是相应月份)总帐中每个帐户的余额,金额和我不需要的其他数据。
我没有成功地为每个帐户获取每个月的值,但并不总是有对应的条目。我已经尝试过左外连接、交叉连接、内连接,但似乎无法让它按我想要的方式工作。我什至尝试使用包含“初始”作为第 0 项和 12 个其他条目的表进行左外连接,每个月一个名称。
以下是数据示例:
GLBalances 表:
acct_no | post_prd | post_trn_amt
1011 | 0 | -15000
1011 | 1 | 5000
1011 | 2 | -6000
1011 | 4 | 8000
1020 | 5 | 100
1020 | 12 | 300
1011 | 9 | 500
1011 | 8 | 0
etc...
我想离开的是:
acct_no | post_prd | post_trn_amt
1011 | 0 | -15000
1011 | 1 | 5000
1011 | 2 | -6000
1011 | 3 | 0
1011 | 4 | 8000
1011 | 5 | 0
1011 | 6 | 0
1011 | 7 | 0
1011 | 8 | 0
1011 | 9 | 500
1011 | 10 | 0
1011 | 11 | 0
1011 | 12 | 0
1020 | 0 | 0
1020 | 1 | 0
1020 | 2 | 0
1020 | 3 | 0
1020 | 4 | 0
1020 | 5 | 100
1020 | 6 | 0
1020 | 7 | 0
1020 | 8 | 0
1020 | 9 | 0
1020 | 10 | 0
1020 | 11 | 0
1020 | 12 | 300
等等……
因此,即使在那个时期没有条目,每个帐户基本上也有 13 个条目用于特定年份。
我确信这比我做的要容易得多,我只是在苦苦挣扎,因为我不是每天都处理 SQL。任何帮助将不胜感激。
【问题讨论】:
-
什么数据库?如果 SQL Server 2005+ 或 Oracle 9i+,递归查询将创建一个数字列表 - 否则您必须自己创建一个表(或临时表)并填充它,然后 LEFT JOIN 到 GL 表中......
-
这是一个 SQL Server 2005 数据库,我正在尝试通过 Access 进行数据访问/等,因此我可以快速生成一个简单的报告。
-
是否有一个accounts表存储了所有的帐号?那张表中的所有内容都是这三列吗?
-
有一个表,其中包含每个帐户编号、描述和一些其他杂项数据。不,这还不是 GLBalances 表中的全部内容,还有 cmpny_cd、acct_no、post_yr、post_prd、post_trn_amt、time_stamp。在我在此评论开头提到的另一个表中,有 cmpny_cd、acct_no、acct_desc,然后是大约 15-20 个字段,这些字段似乎是其他表关系的标志和 id。我对创建表格的软件不是超级熟悉,所以我不知道所有其他字段是什么。
标签: sql sql-server sql-server-2005 tsql