【发布时间】:2014-10-20 05:39:03
【问题描述】:
我几乎完成了一个小型库存系统,但我遇到了“概念”问题。
问题出在现金记录上。
我有一个页面可以手动制作现金记录,可以选择贷记或借记,但主要是用于信用记录,因为销售额将自动存储在销售表中,并将现金表存储为借方。
所以现金表看起来像这样:
Date | description | debit | credit |
2014-08-23 | sales | 456 | |
2014-08-23 | transportation| | 234 |
2014-08-23 | donation | 567 | |
我正在使用上表计算每月的利润(借方 - 贷方 = 利润)
这一切都可以很好地检查月份;y 现金流量。
问题是我不希望它只是一个月(虽然需要每月的现金流,而且已经很好了)。
通过以上内容,我进行如下查询:
$date = date("Y-m");
$sql = "SELECT * FROM cash WHERE date LIKE '$date%'"
所以这会给我那个特定月份的所有内容。
现在主要的问题是:
我希望下个月的起始现金是上个月的利润(结转余额),这将能够显示企业的利润,而不仅仅是一个月的利润。
我想不出最好的方法
编辑(我是怎么做的):
数据库:
CREATE TABLE cash
(
id int auto_increment primary key,
date DATE,
descs varchar (255),
debit varchar(30),
credit varchar (30)
);
INSERT INTO cash
(date, descs, debit, credit)
VALUES
('2014-08-24', 'balance b/f', '5000',''),
('2014-08-24', 'transportation','', '350'),
('2014-08-24', 'sales','2340', '');
我的数据库查询
$date = date('Y-m');
$sql = "SELECT * FROM cash WHERE date LIKE '$date%'" //this will get all from same year and month
PHP 页面
我现在有一个$cashs,其中包含 SQL 查询的结果数组。然后我做
<table class="table table-striped table-hover" id="table">
<thead>
<tr>
<th>No/s</th>
<th>Date</th>
<th>Purpose</th>
<th>Debit</th>
<th>Credit</th>
</tr>
</thead>
<tbody>
<?php $i=1; $total=0; foreach($cashs AS $cash): ?>
<tr>
<td><?php echo $i; ?></td>
<td><?php echo $cash->date; ?></td>
<td><?php echo $cash->desc; ?></td>
<td><?php echo $cash->debit; $total+=$cash->debit; ?></td>
<td><?php echo $cash->credit; $total-=$cash->credit; ?></td>
</tr>
<?php $i++; endforeach; ?>
<tr>
<td><strong>Total</strong></td>
<td></td>
<td></td>
<td></td>
<td><strong><?php echo $total; ?></strong></td>
</tr>
</tbody>
</table>
这工作正常,但我想要的是一种方法来获取上个月上述代码中使用的$total,因此它将余额 b/f 作为借方。这应该是新月份的起始余额。
【问题讨论】:
-
您如何确定下个月的起始现金是多少?上个月的利润?您还可以发布一个包含几个月数据的 sqlfiddle 并获得预期结果吗?
-
@JohnRuddell 是的,一个月的起始现金将是上个月的利润。我会尝试给一个链接到 sqlfiddle
-
如果您从事会计工作,请创建general ledger 之类的。不需要在单独的列中记录,您可以表示具有正值或负值的那些。这使得
SUM(x)代表当前账户余额。 -
@user2666633 你希望最终输出是什么?
-
@tadman 但要将其显示在如上图所示的表格上,我将不得不执行 if($cash->amount
标签: php mysql sql database-design