![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
помогите с алгоритмом
linuxoid © (2010-08-10 09:52:00)Здравствуйте! помогите составить алгоритм для сравнения элементов в базе.
есть две таблицы:
firsttable
id_f | name | status
1 name1 false
2 name2 true
3 name3 false
secondtable
id_s | name | status | n_id_f
1 data1 false 1
2 data2 false 1
3 data3 true 1
4 data4 false 1
5 data5 true 2
6 data6 true 2
5 data7 false 3
6 data8 false 3
задача такая
делаем запрос (select * from secondtable where n_id_f=:firsttable.id_f)
отсюда мы получим первые четыре записи, затем должны проверить их статусы. если все равны true, то в статус для записи в первой таблице, где id_f=1, ставим true. если все false то false. если смешанный - false. так должны сделать для всех записей с первой таблицы.
12 (2010-08-10 10:35:00) [1]
> linuxoid (10.08.10 10:30) [4]
ты сейчас к кому?
[3] или [1]?
если 3, то
если и true и false , то
сумма с группировкой по n_id_f
если =0, все были true
если =count(), все были false
от 0 до count() - были и те и те
linuxoid (2010-08-10 10:30:00) [2]спс!
вот еще один вопрос.
а если будет три исхода.
если все true = 0
если все false = 1
если и true и false = -1(или по-другому обозначить)
как здесь поступить?
12 (2010-08-10 10:03:00) [3]все это можно запросом сделать
truе за 0
false за 1
сумма с группировкой по n_id_f
если =0, все были true -> true
если >0, были false -> false
Ega23 (2010-08-10 10:02:00) [4]Это если я правильно постановку задачи понял.
Ega23 (2010-08-10 09:58:00) [5]
update t1 set t1.status = t1.status && t2.status
from firsttable t1 inner join second table t2 on t1.id_f=t2.id_s