我有3个表(trx_batch,trx_doc_trx_item)。 我希望用户输入id(trx_batch)。然后系统将自动计算链接到trx_doc的trx_item的总和,并且trx_doc链接到trx_batch。
我的表:
CREATE TABLE IF NOT EXISTS `trx_batch` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`batchDate` date NOT NULL,
`status` varchar(1) NOT NULL
PRIMARY KEY (`id`)
);
CREATE TABLE IF NOT EXISTS `trx_doc` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`idBatch` int(11) NOT NULL,
`subject` varchar(200) DEFAULT NULL,
`status` varchar(1) NOT NULL DEFAULT 'A',
PRIMARY KEY (`id`)
);
CREATE TABLE IF NOT EXISTS `trx_item` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`idDoc` int(11) NOT NULL,
`amount` decimal(14,4) NOT NULL,
`amtTax` decimal(12,4) DEFAULT NULL,
PRIMARY KEY (`id`)
);
我拥有的示例数据: trx_batch id:1
trx_doc
id:1
idBatch: 1
trx_item:
id:1
idDoc:1
amount: 500
amtTax : 30
id:2
idDoc:1
amount:100
amtTax:20
如果用户输入1作为trx_batch的id。总数应为650.00。 如何用mysql格式编写?请帮助我谢谢!
答案 0 :(得分:0)
SELECT
SUM( COALESCE( i.amount, 0 ) + COALESCE( i.amtTax, 0 ) ) AS SumAmountAndTax
FROM
trx_item AS i
INNER JOIN trx_doc AS d ON i.idDoc = doc.id
INNER JOIN trx_batch AS b ON d.idBatch = b.id
WHERE
b.id = :batchIdParameterValue