Форум: "Прочее";
Текущий архив: 2015.03.08;
Скачать: [xml.tar.bz2];
Внизпомогите с запросом.. Найти похожие ветки
← →
Vlad oshin pc_other (2014-07-24 13:11) [0]немного ошибся с сохранением..
но ситуация однозначно определяется, не соображу как
ситуация такая:
человека спрашиваем, какие он знает марки {молока}
при этом у оператора на экране выведены некие марки
id name
1 М1
2 М2
3 М3
4 М4
5 М5
если человек называет марку, которую оператор видит (1-5), оператор ее кликает, она исчезает.
исчезнутое записывается в поле таблицы через пробел
т.е. пусть человек вспомнил молоко 1 и 4, тогда в поле А1 запишется "1 4"
когда человек закончил вспоминать, оператор зачитывает оставшееся сверху вниз и спрашивает, слышал ли человек про молоко такое то, и так по всем оставшимся. Данные записываются в другое поле через пробел.
Ошибка моя в том, что я не пишу туда id..
я пишу туда 1 - да, 2 - нет..
т.е. в таблице поля заполнены так
Ф1 = "1 4" - сам вспомнил по молоко 1 и 4
Ф2 = "1 1 2" - слышал молоко 2 и 3, не слышал про 5тое
как бы мне теперь получить
1 М1 - знает
2 М2 - слышал
3 М3 - слышал
4 М4 - знает
5 М5 - НЕ слышал
← →
Inovet © (2014-07-24 13:24) [1]Ошибка ещё и в писание через пробел.
Ну как получить теперь? Я бы переделал структуру и написал разовый конвертор под неё.
← →
Inovet © (2014-07-24 13:28) [2]> [1] Inovet © (24.07.14 13:24)
Получить-то не проблема, только коряво будет и медленно. Со "знает" ещё ничё, а с теми надо сортировать по id и сравнивать с символами из строки на "1" и "2".
← →
Vlad oshin pc_other (2014-07-24 13:43) [3]да вот и ерунда..
наверное, придется писать функцию.. от строковых полей, возврат - таблица
и с ней соединять
медленно, да..
а потом да, лучше переделать.
← →
KilkennyCat © (2014-07-24 13:44) [4]
> Я бы переделал структуру и написал разовый конвертор под
> неё.
однозначно.
самый простой вариант таблицы:
Фио | м1 | м2 | м3 | м4 | м5 |
вася пупкин | знает | слышал | слышал | знает | неслышал |
причем м1..м2 можно тупо set.
вообще странно записать эти данные иным способом.
← →
KilkennyCat © (2014-07-24 13:46) [5]
> а потом да, лучше переделать.
переделай сейчас. быстрее будет. тем более, что от конвертора не требуется никакой красивости, накалякал абы как и готово.
← →
Vlad oshin pc_other (2014-07-24 13:55) [6]да тут еще вот какое дело
мой только интерфейс и в тз ясно написано - писать в одно поле, через пробел
и тз на отчет
.эх, если бы id писал..
блин..
← →
Inovet © (2014-07-24 13:56) [7]> [6] Vlad oshin pc_other (24.07.14 13:55)
> .эх, если бы id писал..
Ну так отконвертируй в ИД. Техзадание не подлежит пересмотру?
← →
Inovet © (2014-07-24 13:59) [8]> [4] KilkennyCat © (24.07.14 13:44)
> самый простой вариант таблицы:
> Фио | м1 | м2 | м3 | м4 | м5 |
Это лишнее, достаточно:
Ид_Опрашиваемого, Ид_Вопроса, Код_Ответа(1, 2, 3).
← →
Vlad oshin pc_other (2014-07-24 14:04) [9]
> Техзадание не подлежит пересмотру?
могу писать что угодно, но поля два
← →
Vlad oshin pc_other (2014-07-24 14:06) [10]да, и пробела нет в тз
просто в аналогичном проекте, который мне дали для ознакомления и сделать по аналогии, так было
← →
Vlad oshin pc_other (2014-07-24 14:07) [11]
> переделай сейчас.
прямо сейчас не могу
только ночью
← →
KilkennyCat © (2014-07-24 14:51) [12]
> Это лишнее, достаточно:
>
> Ид_Опрашиваемого, Ид_Вопроса, Код_Ответа(1, 2, 3).
ага три таблицы. таблица вопросов, таблица опрашиваемых и общая.
в общей будет число записей, равных числу вопросов.
база больше,запросы сложнее.
странная нормализация, не?
← →
KilkennyCat © (2014-07-24 14:54) [13]
> Vlad oshin pc_other
ну если не переделывать, то я бы просто создал массив молока.
и заполнил за два этапа
первый - установили ячейки по индексам Ф1
второй - пробежались по массиву и незаполненные ячейки установили согласно Ф2.
← →
KilkennyCat © (2014-07-24 15:03) [14]первый
for i = 1 to F1.length do begin
if F1[i] = " " or F1 = "" then continue;
M[strtoint[F1[i]] := "знает";
end;
второй
x := 1;
for i = 1 to high(M) do begin
if M[i] = "знает" then continue;
while F2[x] = " " or F2[x] = "" do inc(x);
M[i] := F2[x];
inc(x);
end;
как-то так. добавить проверку индексов и размера строк...
← →
Inovet © (2014-07-24 15:03) [15]> [12] KilkennyCat © (24.07.14 14:51)
> странная нормализация, не?
Нормальная (ага) нормализация. Заранее неизвестно количество опрашиваемых, количество вопросов/сортов_молока/прочих_продуктов_и_услуг. Оветов других, кроме трёх, пока что нет, но даже если будут, так добавить можно, чтобы для них ещё одну таблицу не делать. Так что нормальная нормализация.
← →
ухты (2014-07-24 15:07) [16]xml
← →
KilkennyCat © (2014-07-24 15:08) [17]или так
x_f1 := 1;
x_f2 := 1;
for i := 1 to High(M) do begin
while F1[x_f1] = " " or F1[x_f1] = "" do inc(x_f1);
while F2[x_f2] = " " or F2[x_f2] = "" do inc(x_f2);
if inttostr(F1[x_f1]) = i then begin
M[i] := "знает";
inc(x_f1);
end else begin
M[i] := F2[x_f2];
inc(x_f2);
end;
end;
← →
KilkennyCat © (2014-07-24 15:14) [18]
> Inovet © (24.07.14 15:03) [15]
ты посмотри на существующее тз. там все жестко. потому что пробельная запись полностью станет неверной, даже если просто поменять сорта местами.
и значит нафига планировать, что возможно когда-то, зачем-то, что-то еще будет? тогда нет предела совершенству и попадешь в ад для перфекциониста )
← →
Inovet © (2014-07-24 15:18) [19]> [18] KilkennyCat © (24.07.14 15:14)
> ты посмотри на существующее тз.
Так невозможность изменить ТЗ была озвучена позже, и в нём всё равно нельзя поля добавлять.
← →
KilkennyCat © (2014-07-24 15:24) [20]
> Inovet © (24.07.14 15:18) [19]
невозможность изменения уже видна из метода записи, можно было и не озвучивать.
а добавлять можно, но только в конец.
← →
Vlad oshin pc_other (2014-07-24 15:55) [21]да, два поля. Из доступных. Оба varchar(300). Писать можно что угодно туда.
← →
Vlad oshin pc_other (2014-07-24 15:56) [22]марок может быть больше
но в разумных колвах (более 20 не может, человек скажет интервьюверу что он издевется и просто не станет отвечать :))
← →
Vlad oshin pc_other (2014-07-24 15:58) [23]
> марок может быть больше
в следующем опросе т.е.
там таблицы будут новые, чистые и справочник, соотв. другой
← →
virex(mobile) (2014-07-24 16:40) [24]>KilkennyCat © (24.07.14 13:44) [4]
>
> самый простой вариант таблицы:
> Фио | м1 | м2 | м3 | м4 | м5 |
> вася пупкин | знает | слышал | слышал | знает | неслышал
сериализуемый объект THuman с публичными свойствами, и два метода: сериализация/десериализация
← →
ВладОшин © (2014-07-25 08:07) [25]Конвертнул в [id][знает/не знает][,]
> Ф1 = "1 4" - сам вспомнил по молоко 1 и 4
> Ф2 = "1 1 2" - слышал молоко 2 и 3, не слышал про 5тое
1 1 2 -> 21,31,52
>> KilkennyCat ©
не проблема на делфи разложить
проблема была запросом показать, функция очень тормознутая получилась
← →
ВладОшин © (2014-07-25 15:47) [26]попробую пароль вспомнить
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2015.03.08;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.002 c