【解決方法】会計年度の初めに請求書番号をリセットする方法


これは私のクエリです

How to reset invoice number at the beginning of the financial year using SQL server 2008

This is my query 

select isnull(max(billnu),0) +1 from sales where saldate between CAST('04/01/'+ CAST(YEAR(GETDATE())as varchar) as DateTime) and CAST('03/31/'+ CAST((YEAR(GETDATE())+ 1) as varchar)as DateTime)

but the invoice number displays 1 last year I am done more than 100 bills. Please any one solves my problems.

私が試したこと:

How to reset invoice number at the beginning of the financial year using SQL server 2008

解決策 1

うーん…よろしいですか? ほとんどの会計士と税務担当者は、エラーや不正の余地があるため、請求書番号を再利用することに難色を示します。請求書番号に「説明のつかないギャップ」がある場合と同様に、会社と値が異なる 2 つの同一の請求書番号は、実際の危険信号を発生させます。 請求書番号 93 を送信し、次に発行される請求書が請求書 01 である場合、請求書 94、95、および 096 を表示したくないという疑いがあります。

請求可能なすべての売上に対して税金が課せられることを忘れないでください。 あなたはそこに行きたくない!

通常、請求書番号は連番であり、「撤回」、「再発行」、または「変更」することはできません。代わりに、請求書に対して貸方票を発行して (有効な負の値の請求書)、ゼロにするか、未払い額を修正します。

解決策 2

「最終的な」請求書番号の一部として年を含める予定で、リセットしようとしている番号が「今年のこれまでの請求書の数」だけであると仮定して、次の解決策を見てください。 会計年度ごとに 1 から始まる請求書番号[^] – 提案された解決策を使用する前に、すべてのコメントをお読みください。

SQLに関するその他のポイント。
日付の作成に文字列を使用しないでください。 今年の 4 月 1 日が必要な場合は、次のように、今年の最初の日付に 3 か月を追加します。

SQL
dateadd(mm, 3, dateadd(yy, datediff(yy, 0, GETDATE()), 0))

同様の方法で翌年の3月31日を取得できます

SQL
dateadd(dd, -1, dateadd(mm, 3, dateadd(yy, datediff(yy, 0, GETDATE()) + 1, 0)))

これらは、リン・ペティスの日付に関する参考文献から採用しました。 いくつかの一般的な日付ルーチン – SQLServerCentral[^]

第二に、明確な日付形式を使用してください – を参照してください 日付のフォーマット – グローバリゼーション | マイクロソフト ラーン[^]、ISO 8601 規格を使用
つまり、2022 年 4 月 1 日は 1 月 4 日ですか、それとも 4 月 1 日ですか? 2022-04-01 は、どちらを意味するかを明確にします。 20220401もそうです。
2022-APR-01 もより明確ですが、英語を話す環境を想定しています。 表示する日付を抽出する場合は、表示レイヤーの「フォーマット」について心配する必要はありません。

コメント

タイトルとURLをコピーしました