#android #sqlite #listview #cursor #listviewitem
#Android #sqlite #listview #курсор #listviewitem
Вопрос:
При попытке создать динамические столбцы я получаю следующую ошибку. Я думал, что это законно, но, видимо, Android и SQLite это не нравится. Я уверен, что мне не хватает чего-то простого, но я просто не могу вспомнить.
Сообщение об ошибке: нет такого столбца: sundayResult: , при компиляции:
CREATE TABLE DAYSUSED(
_id INTEGER PRIMARY KEY autoincrement,
sunday INTEGER NOT NULL,
monday INTEGER NOT NULL,
tuesday INTEGER NOT NULL,
wednesday INTEGER NOT NULL,
thursday INTEGER NOT NULL,
friday INTEGER NOT NULL,
saturday INTEGER NOT NULL);
SELECT _id
, volume_level
, vibrate
, CASE WHEN sunday = 1 THEN 'Sun' ELSE ' ' END AS sundayResult
, CASE WHEN monday = 1 THEN 'Mon' ELSE ' ' END AS mondayResult
, CASE WHEN tuesday = 1 THEN 'Tues' ELSE ' ' END AS tuesdayResult
, CASE WHEN wednesday = 1 THEN 'Wed' ELSE ' ' END AS wednesdayResult
, CASE WHEN thursday = 1 THEN 'Thur' ELSE ' ' END AS thursdayResult
, CASE WHEN friday = 1 THEN 'Fri' ELSE ' ' END AS fridayResult
, CASE WHEN saturday = 1 THEN 'Sat' ELSE ' ' END AS saturdayResult
, sundayResult || ' ' || mondayResult || ' ' || tuesdayResult || ' ' || wednesdayResult || ' ' || thursdayResult || ' ' || fridayResult || ' ' || saturdayResult || ' ' AS days_of_week
FROM DAYSUSED
Последняя строка сработает, если я выполню прямой вызов фактических столбцов, таких как:
, sunday || ' ' ||
вместо того, что у меня есть в настоящее время, которое:
, sundayResult || ' ' ||
Я просмотрел все и не знаю, что еще попробовать, так как мне действительно хотелось бы изменить данные для курсора.
Спасибо, Келли
Ответ №1:
sundayResult — это просто псевдоним, и вы не можете использовать его в том же запросе. Вам нужно что-то вроде этого. Если volume_level и vibrate поступают из другой таблицы, то соедините их с помощью подзапроса «days»
SELECT _id
, volume_level
, vibrate
, days.sundayResult || ' ' || days.mondayResult || ' ' || days.tuesdayResult || ' ' || days.wednesdayResult || ' ' || days.thursdayResult || ' ' || days.fridayResult || ' ' || days.saturdayResult || ' ' AS days_of_week
from
( select
CASE WHEN sunday = 1 THEN 'Sun' ELSE ' ' END AS sundayResult
, CASE WHEN monday = 1 THEN 'Mon' ELSE ' ' END AS mondayResult
, CASE WHEN tuesday = 1 THEN 'Tues' ELSE ' ' END AS tuesdayResult
, CASE WHEN wednesday = 1 THEN 'Wed' ELSE ' ' END AS wednesdayResult
, CASE WHEN thursday = 1 THEN 'Thur' ELSE ' ' END AS thursdayResult
, CASE WHEN friday = 1 THEN 'Fri' ELSE ' ' END AS fridayResult
, CASE WHEN saturday = 1 THEN 'Sat' ELSE ' ' END AS saturdayResult
FROM DAYSUSED
) days
Комментарии:
1. Большое вам спасибо за помощь. Когда я увидел ваше решение, я начал думать, что мне, возможно, придется выполнить CTE или ПРИСОЕДИНИТЬСЯ.