合計機能の使用に問題があります。つまり、基本的に、paiment_typeとbillsの 2 つのテーブルがあります。billsテーブルには、この特定の請求書に使用された支払いの種類を知ることができる外部キー名fk_paiement_typeがあります。
統計を印刷するとき、支払いタイプごとに合計を取得するためにこれを行っています:
SELECT
pt.name,
SUM(f.total_ttc) AS total_mode
FROM
bills AS f
INNER JOIN paiement_type AS pt
ON pt.id = f.fk_paiement_type
WHERE (
f.created BETWEEN '2013-01-10'
AND '2013-01-10'
)
AND (
f.type LIKE 'facture'
OR f.type LIKE ''
)
GROUP BY f.fk_paiement_type
このコードはうまく機能しますが、実際には3つの異なる支払いタイプがあり、日中はそのうちの2つしか使用されないこともあり、存在しない場合でも同じように表示したいと考えています。
EDIT:私はすでにIFNULL機能を使用しようとしましたが、うまくいきませんでした。bills テーブルの fk_paiement_type は、paiement_type テーブルに一致する 2 つの値のみを返す場合があります。私の問題はここから来ていると思います:
INNER JOIN paiement_type AS pt ON pt.id = f.fk_paiement_type
何か案が?
EDIT2:
私のテーブル構造は次のとおりです。
**Bills Table**
id (int),
fk_paiement_type (int),
ref (varchar),
fk_client (int),
tss (double),
total_ttc (double),
type (varchar),
created (datetime)
**Paiement_type Table**
id (int),
name (varchar)
私はあなたの最後の答えを試しましたが、それでもうまくいきませんでした。今のところ、Java コードでこの問題を回避するだけですが、それを行うための「クリーンな」方法が欲しいです。
助けてくれてどうもありがとう