在android中使用SQLite数据库表从同一个表中计算两个不同的列值
我试图从同一个表中选择多个值。我需要从posts表中选择列rfid和process_status的计数值,并从stations表中选择station_标题 以下是两张表格: 员额表: 但这给出了错误的输出,如: 总RFID:3这是错误的!! 待决总数:3在android中使用SQLite数据库表从同一个表中计算两个不同的列值,sqlite,android-sqlite,Sqlite,Android Sqlite,我试图从同一个表中选择多个值。我需要从posts表中选择列rfid和process_status的计数值,并从stations表中选择station_标题 以下是两张表格: 员额表: 但这给出了错误的输出,如: 总RFID:3这是错误的!! 待决总数:3 电台标题:nfc电台01要计算与条件匹配的行数,请在布尔表达式上使用SUM: SELECT COUNT(*) AS TotalTap, SUM(process_status = 'pending') AS TotalPending
电台标题:nfc电台01要计算与条件匹配的行数,请在布尔表达式上使用SUM:
SELECT COUNT(*) AS TotalTap,
SUM(process_status = 'pending') AS TotalPending
FROM Posts
WHERE ownerId = 107
AND stationId = 'raj1222681607';
在同一个查询中尝试计算第三个值是没有意义的;只需使用一个单独的、简单得多的查询:
SELECT title
FROM Stations
WHERE stationId = 'raj1222681607';
Android在这方面有一个优势:
字符串标题=DatabaseUtils.stringForQuerydb,
从stationId=?,的电台中选择标题?,
新字符串[]{raj1222681607};
嗨,CL,谢谢你的更正。进程状态值为字符串格式。那么sum将是一个好的选择?我需要从一个db函数调用中获取所有这些信息。因此,我还需要获取标题值。表达式process_status='pending'的值为0或1。我的查询是:选择COUNTp.rfid作为TotalTap,从posts p中选择COUNTp.process_status,其中p.ownerId=?和p.stationId=?和p.process_status=?作为TotalPending,p.stationId=s.stationId上的p个内部连接站的s.title,其中p.ownerId=107,p.stationId='raj1222681607'和p.process_status='pending';但我无法从游标调用中获取这些值。这是另一个查询。 Total RFIDs : 5 Total Pending : 3 Station Title : nfc station 01
SELECT
COUNT(p.rfid) as TotalTap,
COUNT(p.process_status) as TotalPending,
s.title
FROM posts p
inner join
stations s
on p.stationId = s.stationId
WHERE
p.ownerId = 107 AND p.stationId = 'raj1222681607'
AND p.process_status = 'pending';
SELECT COUNT(*) AS TotalTap,
SUM(process_status = 'pending') AS TotalPending
FROM Posts
WHERE ownerId = 107
AND stationId = 'raj1222681607';
SELECT title
FROM Stations
WHERE stationId = 'raj1222681607';