显示一列我有两个表子查询到一个表作为两个单独的列
Ledgers Table
==============
ledger_id ledger_name open_bal close_bal dr_bal cr_bal
--------- --------- --------- --------- ------ ------
1 Bank A/C 0 5000 5000 0
2 Capital A/C 0 -50000 0 50000
3 Cash A/C 0 30700 53500 22800
Transactions Table
==============
trans_id trans_date ledger_id ledger_name amount trans_type
--------- --------- --------- --------- --------- ---------
1 2004-01-01 3 Cash A/C 50000 Dr
2 2004-01-01 2 Cap A/C 50000 Cr
3 2004-01-02 9 Purchase A/C 10000 Dr
这是我的表,有什么想实现是让账簿余额特定月份。这里不是试图将数据插入到表中。
使用上面两个表我只需要查询和出把结果作为
Desired Output
==============
ledger_id ledger_name amount trans_type As Debit trans_type as Credit
--------- --------- ------ --------- ---------
3 Cash A/C 50000 Dr Null
2 Capital A/C 50000 Null Cr
所以分别显示在这里TRANS_TYPE场DR作为借方和铬作为学分。这是我想要实现的。
我到现在为止所尝试的是加入交易表与分类帐!但是,通过查询这两个表,我无法获得所需的输出结果。
这是我曾经尝试过,
SELECT tr.trans_date, tr.amount, tr.ledger_id, l.ledger_name, tr.trans_type
FROM tbl_transaction tr LEFT JOIN tbl_ledgers l
ON l.ledger_id = tr.ledger_id WHERE trans_date BETWEEN '2004-01-01' AND '2004-01-31';
所以我基本上想知道如何才能实现这一目标? trans_type列拆分成两个“Dr”分开和“Cr”分开?
您可以在此更改示例输出以显示实际存在于“交易”表中的行吗?您发布的示例没有'ledger_id = 1'的行,尽管我认为我理解了这个要求,但是看到_exactly_是给定示例输入应该生成的输出很有帮助。 –
我想澄清的另一件事 - 这看起来像只将Dr,Cr分隔为单独的列,但在一列中列出了相关的“数量”。这是正确的,还是有意为每个分类账编号创建一个聚合“SUM()”? –
@MichaelBerkowski,是的你是对的,我只想把Dr,Cr分成不同的栏目,并在栏目中填入金额。 – shiva86