0

もう一度私、

この場合、次のフィールドを持つアカウンティングコードテーブル[ACCOUNTINGCODE]があります:
ACC1CUST(例:IVMA)
ACC2DATE(例:12)
ACC3NROFPROJ(例:05)
ACC4USER(例:JD)

説明させてください。
アカウンティングコードの例は次のとおりです
。IVMA-12-01-
JDIVMA-12-02-
RPIVMA-12-03-
WDIVMA-12-04-JD

ACC1CUSTには、[CUSTOMER]のNAMECODEが入力されています。
ACC2DATEは、[ACCOUNTINGCOE]がユーザーによって作成された年の2つの終了番号です。
ACC3NROFPROJは、同じ[CUSTOMER]の同じ年のプロジェクトの数です。したがって、ACC1CUST、ACC2DATE、およびACC3NROFPROJは相互に依存しています。
ACC4USERは[EXECUTOR]のNAMECODEであるため、ここではそれほど重要ではありません。

ジェネレータクエリを作成しました。このジェネレーターは、[ACCOUNTINGCODE]にある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 に答える