1

私はVATを含むまたは含まない製品の範囲を持っています。私は常にVATを含む価格を顧客に示したいので、価格にVATが含まれるかどうかを示すフラグがあります。現在、PHPでVATを追加しています。これは、MySQLが基本価格で並べ替えるため、並べ替えがうまくいかないことを意味します。VATによって結果が乱れる場合があります。

次に、MySQLクエリ内で、必要に応じてVATを価格に自動的に追加します。どうすればこれを達成できますか?

私の製品テーブルは次のようになります。

product_id, product_dayprice, product_weekprice, product_includevat

product_includevatは単なるブール値、つまり1または0です...VATはPHP変数として格納されます

私のソートコードは次のようになります。これは、価格が0の製品を最後に配置するように設計されています。

CASE product_daypriceWHEN 0 then 40000 ELSE product_dayprice END
4

2 に答える 2

3

それproduct_include_vatがブールフィールドである場合、それは次のように単純になります

SELECT product_weekprice + (product_weekprice * vat_rate * product_includevat)

includevatフィールドがfalseの場合、整数0と評価され、乗算でバットがゼロになります。

于 2012-10-04T20:17:21.383 に答える
0

すべてのステップでVATを動的に計算しないでください。一度計算して、すべてのデータを保存します。たとえば、nettoとVATを別々の値として、またはbruttoとnetto、またはbruttoとVATのいずれかを保存します。

なぜ冗長性なのか?1つ:価格を追加するときの丸め誤差。2:VAT率が変更された場合でも、一部のデータは販売後も永続的である必要があります。これは現在の価格のデータベースには無効ですが、顧客の履歴については、販売時に含まれていたVATの金額を知る必要があります。毎回再計算し、VAT率が上がると、税務署に多額の支払いが発生します。

于 2012-10-04T21:32:17.557 に答える