0
我有两个mysql表,一个是tblvouchers,另一个是tblinvoices,我正在开发一个小型会计系统。 这两个表都有不同的字段帐户代码,借记卡和信用额度字段等。现在我想从两个表中计算总净余额 代码明智我用多个小临时表和查询实现这一点,但我想用单个查询来实现这一点,请任何人指导我如何实现这与单个MySQL查询。来自多个MySQL表的净收益
我的示例表如下。
TBLVOUCHERS
VOU_ACC_CODE DR_AMOUNT CR_AMOUNT
------------ --------- -----------
3-01-0001 0 4600
3-01-0002 10000 0
3-01-0005 15000 0
6-02-0001 0 27500
6-02-0002 0 315432
6-03-0001 27500 0
TBLINVOICES
ACCOUNT_CODE DR_AMOUNT CR_AMOUNT
------------ --------- -----------
3-01-0001 0 11400
3-01-0005 0 10454.2
3-01-0001 0 4600
3-01-0001 0 7500
6-01-0002 1250 0
6-02-0007 0 750
7-01-0001 0 1250
ACCOUNT_CODE DR_AMOUNT CR_AMOUNT NET_BALANCE
------------ --------- ----------- -----------
3-01-0001 0 28100 -28100
3-01-0002 10000 0 10000
3-01-0005 4545.8 0 4545.8
6-02-0001 0 27500 -27500
6-02-0002 0 315432 -315432
6-02-0007 0 750 -750
6-03-0001 27500 0 27500
7-01-0001 0 1250 -1250
我的PHP代码:
$empty = mysql_query("TRUNCATE `tblaccountingledger`");
$VOUCHERS = mysql_query("
INSERT INTO `tblaccountingledger`
SELECT
`tblvouchers`.`VOU_DATE`,
`tblvouchers`.`VOU_NO`,
`tblvouchers`.`BILL_NO`,
`tblvouchers`.`VOU_CROSS_ACC_CODE`,
`tblcharts`.`ACC_NAME`,
`tblvouchers`.`VOU_NARRATION`,
`tblvouchers`.`DR_AMOUNT`,
`tblvouchers`.`CR_AMOUNT`
FROM
`tblvouchers`
INNER JOIN `tblcharts`
ON (
`tblvouchers`.`VOU_CROSS_ACC_CODE` = `tblcharts`.`ACC_CODE`
)
WHERE `tblvouchers`.`VOU_ACC_CODE` = '".$ACC_CODE."'
AND `tblvouchers`.`VOU_DATE` BETWEEN '".$START_DATE."'
AND '".$END_DATE."';
");
$INVOICES = mysql_query("
INSERT INTO `tblaccountingledger`
SELECT
`tblinvoices`.`INVOICE_DATE`,
`tblinvoices`.`INVOICE_NO`,
`tblinvoices`.`BILL_NO`,
`tblinvoices`.`CROSS_ACCOUNT_CODE`,
`tblcharts`.`ACC_NAME`,
`tblinvoices`.`NARRATION`,
`tblinvoices`.`DR_AMOUNT`,
`tblinvoices`.`CR_AMOUNT`
FROM
`shop_system`.`tblinvoices`
INNER JOIN `shop_system`.`tblcharts`
ON (
`tblinvoices`.`CROSS_ACCOUNT_CODE` = `tblcharts`.`ACC_CODE`
)
WHERE `tblinvoices`.`ACCOUNT_CODE` = '".$ACC_CODE."'
AND `tblinvoices`.`INVOICE_DATE` BETWEEN '".$START_DATE."'
AND '".$END_DATE."';
");
为什么净额为3-01-0001'-28100',那么你已经在一个帐户了'4600'和另一个'11400'? 4600 + 11400 = 28100怎么样? – 2014-11-06 19:02:23
@Marc B,对不起,这是我的示例表。 – khizar123456 2014-11-06 19:04:19