【问题标题】:Get records from three tables to get ledger values从三个表中获取记录以获取账本值
【发布时间】:2017-06-26 12:37:08
【问题描述】:

我正在使用以下查询从两个表中获取记录。

我想从不同的表中获取借记金额,结果应该如下所示。

我当前的查询

select VM.voucher_no, VM.vch_date,VM.vch_remarks, case when DT.vch_amt_type2app_elm='Debit' then dt.amount else 0 end as Debitamt,
case when DT.vch_amt_type2app_elm='Credit' then dt.amount else 0 end as Creditamt 
from TBL_VOUCHER_DETAIL DT 
INNER JOIN TBL_Voucher_Master  VM 
ON VM.voucher_no = DT.voucherdetail2vmaster 
where VM.Vch_Date  between  '2015-06-17 15:12:51.000' and '2015-06-17 15:12:51.000'
and DT.voucherdetail2ledgers='L00012'

结果如下

Voucher No  Voucher Date    Remark  Debit   Credit
   49         17/06/2017      a       0     8229 

另一个表:- Tbl_invo 字段名称:- Inv no、date、cliName、Total、Dabit。

【问题讨论】:

  • 听起来你也需要在 DEBIT 表上加入。
  • 那你为什么不能呢?
  • 能否再给一个表名和字段pelase
  • 谢谢@B House,我已经添加了另一个有问题的表字段..
  • @RavirajJadhav Brill。 Tbl_invoice 到 tbl_vouhcer_master 之间的共同字段是什么?

标签: sql sql-server database


【解决方案1】:

@Raviraj 如果我理解正确,您想将 Debitamt 和 Creditamt 列中的 dt.amount 替换为 Tbl_invo 中的值。我不确定您使用的是 Tbl_invo.Total 还是 Tbl_invo.Dabit 但无论您选择哪一个,您都可以: 对 Tbl_invo 进行另一个内部连接(如果它总是有一个值),然后将 dt.amount 替换为 Tbl_invo.Total (或其他)。 或者,您可以将 dt.amount 替换为对 Tbl_invo 的子查询,例如:

....

或使用内连接:

【讨论】:

  • 谢谢@Richard.. 我只想替换来自 Tbl_invo 的借方金额,而贷方金额将与原来相同。
  • 酷。我想你可以相应地更新,即对于“信用”的情况,使用 dt.amount。希望以上内容有所帮助。
猜你喜欢
  • 1970-01-01
  • 2011-03-08
  • 2011-01-06
  • 2016-08-04
  • 1970-01-01
  • 2020-08-22
  • 1970-01-01
  • 1970-01-01
  • 2013-12-17
相关资源
最近更新 更多