Android взорвался, когда я со следующим мы пытаемся использовать базу данных SQLite, которую я создал здесь - PullRequest
0 голосов
/ 12 апреля 2011

Я получаю следующую ошибку при попытке создать динамические столбцы. Я думал, что это законно, но, видимо, 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 Ответ

0 голосов
/ 12 апреля 2011

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
...