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."';
");
왜, 당신은 하나 개의 계정에 4600''있어 -28100''3-01-0001의 순 양 다른 쪽은'11400'입니까? 4600 + 11400 = 28100은 어떻게 할 수 있습니까? –
@Marc B, 죄송합니다. 내 예제 테이블입니다. – khizar123456