1

私はこれらのテーブルを持っています:

ドゥードヒヤ

dhid INTEGER PRIMARY KEY NOT NULL, 
dname TEXT NOT NULL, 
dfname TEXT NOT NULL, 
dage INTEGER NOT NULL, 
dadd TEXT, 
dphone INTEGER NOT NULL, 
demail TEXT NOT NULL

doodhdata

dtid INTEGER PRIMARY KEY NOT NULL, 
ddate INTEGER NOT NULL, 
dmonth INTEGER NOT NULL,
dyear INTEGER NOT NULL, 
dmilk INTEGER NOT NULL, 
dprice INTEGER NOT NULL default 35 , 
dmore TEXT, 
ddhid INTEGER NOT NULL

プライスミルク

pid INTEGER PRIMARY KEY NOT NULL, 
pmonth INTEGER NOT NULL, 
pyear INTEGER NOT NULL, 
milkprice INTEGER NOT NULL, 
typeperson TEXT, 
userid INTEGER, 
gheeprice INTEGER, 
defaultprice TEXT

キャッシュデータ

cashid INTEGER PRIMARY KEY NOT NULL,
cashdate INTEGER NOT NULL, 
cashmonth INTEGER NOT NULL, 
cashyear INTEGER NOT NULL, 
cashamount INTEGER NOT NULL, 
uid INTEGER NOT NULL, 
utype TEXT NOT NULL, 
cashtype TEXT NOT NULL, 
cashmore TEXT

毎月の請求書を作成したいのですが、それを使って購入することに成功しています...しかし、請求書で先月の残高を表示するにはどうすればよいですか....私はそれを使おうとしています

 SELECT
  ddhid, dmonth, dyear, dmilk,
  userid, pmonth, pyear, milkprice, 
  uid, cashmonth, cashyear, cashamount, utype, 
  SUM(dmilk) AS totalmilk,  
  SUM(dmilk*milkprice) AS totalamount, 
  SUM(cashamount) AS totalcash
  FROM 
 doodhdata 
 LEFT JOIN pricemilk ON (
   doodhdata.ddhid = pricemilk.userid 
   AND doodhdata.dmonth = pricemilk.pmonth 
   AND doodhdata.dyear = pricemilk.pyear
 )
 LEFT JOIN cashdata ON (
   doodhdata.ddhid = cashdata.uid 
   AND doodhdata.dmonth = cashdata.cashmonth 
   AND doodhdata.dyear = cashdata.cashyear
 )
 WHERE 
   dmonth > '$mikdatem' 
   AND dyear='$mikdatey' 
   AND ddhid='$dhid'

しかし、milkpriceがNULLの場合はdefaultpriceを使用したいのですが...どうすれば可能ですか...?

4

1 に答える 1

1

使用する

COALESCE(milkprice, defaultprice)

milkpriceクエリの代わりに。

SQLiteコア関数のドキュメントを参照してください。

于 2012-08-28T20:38:35.300 に答える