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