老實說,我不知道如何來命名這個問題妥善..使用SQLite查詢把唯一的值到ListView中的「歷史的應用程序」
我有這些列的sqlite的分貝。
private final String createDb = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " ("
+ C_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ DATE + " text, "
+ SUBCAT + " text, "
+ ITEM + " text, "
+ PRICE + " integer, "
+ QUANTITY + " integer, "
+ WEIGHT + " integer, "
+ VOLUME + " integer, "
+ SALE + " text, "
+ STORE + " text, "
+ EXTRA + " text) ";
並試圖使用ViewBinder
調用下面的SQL查詢。
public String avgPrice() {
ourHelper = new DbHelper(ourContext);
db = ourHelper.getReadableDatabase();
String sql = "SELECT AVG(PRICE) as avgprice, ITEM FROM " + TABLE_NAME + " GROUP BY " + ITEM;
Cursor d = db.rawQuery(sql, null);
我原來有一個ListView和一個XML,每個列都包含一個textview。這只是拉1:1關閉數據庫的每列。使用適配器很容易。我正在嘗試使用ViewBinder
來檢測每個輸入項目的平均價格(如果存在重複的實例,例如不同的日期),並顯示該項目的平均價格。
本質上,我希望ListView只顯示一個項目(以avg價格),當您選擇它時,您可以查看每個存儲的實例(如歷史記錄)。
從哪裏做到這一點最簡單的方法是什麼? 假設上面可以使用ViewBinder
方法(或查詢),我如何提取ITEM and AVG(PRICE)
才能將相應視圖放入一次以實現我的「歷史記錄」功能?
下面的RED建議在ITEM上使用UNIQUE。我認爲這是有道理的。 – Clam
如果我製作了一個平均價格欄,我可以使用類似的查詢來查看我必須付出的平均價格嗎?我怎麼會把這個計算? – Clam
獨特的約束不能幫助你。新平均值列的想法是使用sqlite觸發器在您添加新行(使用新價格)時更新列或者當您更新價格以重新計算平均值時(基於新價格)。 – Luksprog