0

又是我,

在这种情况下,我有一个会计代码表 [ACCOUNTINGCODE],其中包含以下字段:
ACC1CUST(例如:IVMA)
ACC2DATE(例如:12)
ACC3NROFPROJ(例如:05)
ACC4USER(例如:JD)

让我解释。
这些是会计代码的示例:
IVMA-12-01-JD
IVMA-12-02-RP
IVMA-12-03-WD
IVMA-12-04-JD

ACC1CUST 填充了 [CUSTOMER] 的 NAMECODE。
ACC2DATE 是用户制作 [ACCOUNTINGCOE] 年份的 2 个结束编号。
ACC3NROFPROJ 是同一[CUSTOMER]在同一年的项目数。所以 ACC1CUST、ACC2DATE 和 ACC3NROFPROJ 相互依赖。
ACC4USER 是 [EXECUTOR] 的 NAMECODE,所以这在这里并不重要。

我做了一个生成器查询。此生成器在他在 [会计代码] 中拥有的 MAX 个项目上计数 +1。但我的代码不取决于年份(ACC2DATE)。因此,如果我已经拥有 IVMA-12-01-JD 并且接下来放置 IVMA-13,它将不会从 01 重新开始,而是从 02 继续。当然,因为我的代码正在检查 ACC1CUST 的项目数量。

我的查询是:

$projectcount="
SELECT accountingcode.custid, customer.custid, MAX(acc3nrofproj) as 'projects'
FROM accountingcode, customer
WHERE accountingcode.custid= customer.custid
AND customer.custid = '$custid'
";

$result3=mysql_query($projectcount) or die("query fout " . mysql_error() );
while( $record3=mysql_fetch_array($result3) )
{
$projectcount=$record3['projects'];
$projectcount = $projectcount+1;
$format = '%1$03s';
$formatprojectcount = sprintf($format, $projectcount);
}

但是,如果您开始一个在 ACC2DATE 中不存在的新的一年,这并没有什么不同。

任何人都知道我怎样才能做到这一点?

非常感谢您提前!

找到了

    $projectcount="
      SELECT accountingcode.custid, accountingcode.acc2date, MAX(acc3nrofproj) as 'projects'
      FROM accountingcode, customer
      WHERE accountingcode.custid= customer.custid
      AND customer.custid = '$custid'
      AND acc2date = '$formatdatefrom'
      ";

    $result3=mysql_query($projectcount) or die("query fout " . mysql_error() );
    while( $record3=mysql_fetch_array($result3) )
    {
        $projectcount=$record3['projects'];
        $projectcount = $projectcount+1;
        $format = '%1$03s';
        $formatprojectcount = sprintf($format, $projectcount);
    }
4

1 回答 1

0
for($i = $startYear/*03, Let's say.*/; i <= $endYear /*12?*/; i++)
{

    $projectcount="SELECT accountingcode.custid, customer.custid, MAX(acc3nrofproj) as 'projects'
      FROM accountingcode, customer
      WHERE accountingcode.custid= customer.custid
      AND customer.custid = '$custid'
      AND ACC2DATE = $i";

    $result3=mysql_query($projectcount) or die("query fout " . mysql_error() );
    while( $record3=mysql_fetch_array($result3) )
    {
        $projectcount=$record3['projects'];
        $projectcount = $projectcount+1;
        $format = '%1$03s';
        $formatprojectcount = sprintf($format, $projectcount);
    }
}

在从 baseYear 到最后一年的 for 循环中使用上述查询。

于 2012-10-04T14:13:23.050 回答