2014-09-26 55 views
0

我想寫查詢,其中表考勤值的列名enter_mode不等於check_in,這意味着他沒有簽入的那一天,或者如果同一列的記錄計數名稱值等於check_out大於1,表示他已經簽出。 使用SQLite面臨困難寫入查詢

below is my query 

SELECT * FROM Attendance 
WHERE emp_id="+emp_id+" 
    and cdate='"+cdate+"' 
    and enter_mode!='check_in' 
UNION 
SELECT * FROM Attendance 
WHERE emp_id="+emp_id+" 
    and cdate='"+cdate+"' 
    and enter_mode!='check_out' 

請幫我提前解決這個issue.Thanks

+1

您應該發佈錯誤或不正確的結果。 – Segfault 2014-09-26 12:40:27

+0

@Segfault我在sqlite數據庫中寫入查詢,所以在執行所需的sql語句之後,調用成功方法時,我必須在當天沒有簽入時顯示警報,或者他已經在當天檢出瞭如何寫入? – Akshobhya 2014-09-26 12:42:48

+0

嘗試使用sqlite3命令行工具對查詢進行故障排除 – Segfault 2014-09-26 12:44:13

回答

0

試試這個第二部分:

SELECT * FROM Attendance 
WHERE emp_id="+emp_id+" 
    and cdate='"+cdate+"' 
    and enter_mode='check_out' 
GROUP BY emp_id 
HAVING COUNT(emp_id) > 1 

順便說一句,你應該總是粘貼表定義。

+0

我必須在單個查詢中滿足這兩個條件:(下面是我的表結構CREATE TABLE IF NOT EXISTS Attendance(id INTEGER PRIMARY KEY AUTOINCREMENT,emp_id INTEGER,name TEXT,cdate TEXT,ctime TEXT,enter_mode TEXT,pin_no TEXT,reason TEXT,image BLOB,flag INTEGER DEFAULT 0) – Akshobhya 2014-09-26 12:51:48

+0

我不太明白這個問題,emp_id是什麼意思,等等。無論如何,單獨嘗試這個部分,如果它給你你想要的結果然後嘗試做一個聯合,就像在你的粘貼sql。我的建議:嘗試解決當時的一個問題 – 2014-09-26 12:54:50

+0

謝謝:-)我會試試這個 – Akshobhya 2014-09-26 12:55:43