2015-04-21 38 views
0

我试图创建一个视图,但由于某种原因,它给了我一个列不存在的错误。这不是我所做的第一个视图,所有其他人都在工作,表格在那里,列和所有(我用DBBrowser检查,除了这一个VIEW不工作)。编译CREATE VIEW时不存在SQLite错误列(存在)

我检查了我的空白区,这一切都是为了顺序,但有些事情出错了,我一直在拉我的头发,试图找出什么。有人可以对此有所了解吗?

logcat的

Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.jc.pseudocc/com.example.jc.pseudocc.AccountManager}: android.database.sqlite.SQLiteException: no such column: Companies.CompanyID (code 1): , while compiling: CREATE VIEW ViewCompanies AS SELECT Companies.CompanyID AS _id, Payments.GroupID, Payments.PaymentDue, Payments.DateDue FROM Payments JOIN Accounts ON Payments.GroupID = Accounts.AccountID 

COMPANY

db.execSQL("CREATE TABLE " + COMPANY + " (" + colCompID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
      colCompClass + " TEXT)"); 

PAYMENTS

db.execSQL("CREATE TABLE " + PAYMENTS + " (" + colPayID + " INTEGER PRIMARY KEY , " + 
      colGroupID + " INTEGER NOT NULL, " + 
      colPayBal + " TEXT, " + 
      colInterest + " TEXT, " + 
      colPayDue + " TEXT, " + 
      colDateDue + " TEXT, " + 
      colPayDate + " TEXT, " + 
      "FOREIGN KEY (" + colGroupID + ") REFERENCES " + ACCOUNTS + " (" + colID + ") ON DELETE CASCADE);"); 

VIEW

db.execSQL("CREATE VIEW " + viewComps + 
      " AS SELECT " + COMPANY + "." + colCompID + " AS _id," + 
      " " + COMPANY + "." + colCompClass + "," + 
      " " + PAYMENTS + "." + colGroupID + "," + 
      " " + PAYMENTS + "." + colPayDue + "," + 
      " " + PAYMENTS + "." + colDateDue + "" + 
      " FROM " + PAYMENTS + 
      " JOIN " + ACCOUNTS + " ON " + PAYMENTS + "." + colGroupID + " = " + ACCOUNTS + "." + colID); 
+3

应该'” FROM “+付款+'是'” FROM “+付款+” ,“+ COMPANY +'? – njzk2

+0

我现在在哭,那个时候我不再编码,因为我再也不用编写怪物来睡觉了。谢谢你,我有一种感觉,我错过了一些东西。将它发布为答案,以便我们可以在SO中完成我的第一个愚蠢问题。 – Cytus

回答

2

在创建视图,您引用公司和支付。您需要表明,在您的查询的FROM部分:

更换

" FROM " + PAYMENTS + 

" FROM " + PAYMENTS + ", " + COMPANY +