|
Помогите выполнить запрос
|
|||
---|---|---|---|
#18+
помогите выполнить запрос. Проверить Отсутствие обязанностей у мужчин, которые есть только у женщин. Обязанности со следующими кодами могут быть только у женщин: SET FILTER TO OCCURS("51010", kod)>0 OR OCCURS("51011", kod)>0 OR OCCURS("51012", kod)>0 OR OCCURS("51047", kod)>0 OR OCCURS("51026", kod)>0 OR OCCURS("51027", kod)>0 OR OCCURS("55033", kod)>0 OR OCCURS("55035", kod)>0 Обязанности хранятся в таблице osz.dbf. в этой таблице можно выделить основные поля Name и kod (название и код). Есть еще две таблицы Ludi (люди) в ней можно выделить основные поля FIO, id. Есть третья таблица которая содержащая в себе информацию о функциях этих людей. В ней основное поле kod_obyaz и id. Несколько часов потратила на осмысливание но никак не могу разобраться. Надо проверить отсутствие обязанностей у мужчин, которые есть у женщин. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 13:16 |
|
Помогите выполнить запрос
|
|||
---|---|---|---|
#18+
Диана06Надо проверить отсутствие обязанностей у мужчин, которые есть у женщин. Выбираешь в один курсор обязанности мужчин (obm), в другой женщин (obw) затем Код: sql 1.
id - код обязанности ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 13:48 |
|
Помогите выполнить запрос
|
|||
---|---|---|---|
#18+
Dima T, так то можно, но у меня есть таблица где хранятся данные о людях о мужчинах и женщинах, и есть таблица obyaz с полями kod_obyaz и id где хранятся функции которые они выполняли в какой-то промежуток скажем за месяц. И надо проверить отсутствие у мужчин тех обязанностей которые могут быть только у женщины. таблица obyaz и ludi связаны по полю id.. А таблица osz с таблицей obyaz по полю kod_obyaz (kod) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 13:54 |
|
Помогите выполнить запрос
|
|||
---|---|---|---|
#18+
Диана06хранятся функции которые они выполняли в какой-то промежуток скажем за месяц. И надо проверить отсутствие у мужчин тех обязанностей которые могут быть только у женщины. В чем проблема выбрать все функции выполненные мужчинами за нужный период? также женщинами. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 14:00 |
|
Помогите выполнить запрос
|
|||
---|---|---|---|
#18+
Dima T, в этом проблем нет. Проблема в том что не понимаю как проверить отсутствие обязанностей у мужчин, которые у женщин только могут быть ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 14:03 |
|
Помогите выполнить запрос
|
|||
---|---|---|---|
#18+
обязанности мужчин могу выбрать так Код: sql 1.
ну выберу я их , а дальше как поступить? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 14:04 |
|
Помогите выполнить запрос
|
|||
---|---|---|---|
#18+
Диана06Dima T, в этом проблем нет. Проблема в том что не понимаю как проверить отсутствие обязанностей у мужчин, которые у женщин только могут быть Не отсутствие, а наличие. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 14:05 |
|
Помогите выполнить запрос
|
|||
---|---|---|---|
#18+
Диана06обязанности мужчин могу выбрать так Код: sql 1.
ну выберу я их , а дальше как поступить? Я выше написал уже как в один курсор обязанности мужчин Код: sql 1.
затем в другой обязанности женщин Код: sql 1.
затем выбираем обязанности которые есть у женщин и нет у мужчин Код: sql 1.
Только что-то мне подсказывает что твоим запросом совсем другое выберется :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 14:12 |
|
Помогите выполнить запрос
|
|||
---|---|---|---|
#18+
IgorNG, именно отсутствие проверить. Я выше написала какие обязанности могут быть только у женщин ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 14:12 |
|
Помогите выполнить запрос
|
|||
---|---|---|---|
#18+
вы пишите Код: sql 1.
говоря что id это код обязанности. А у меня это не так: давайте я вам заново скажу как связаны таблицы Таблица Obyazannosti (поля Namm, kod_obz) Таблица Ludi (поля ID) Таблица Obyaz (поля id, kod_obz) Таблицу Ludi и Obyaz можно связать по полю ID т.е. у человека с таким id такая обязанность Таблицу Obyaz и Obyazannosti можно связать по полю Kod_obz. И вот как теперь проверить следующее: Отсутствие у мужчин обязанностей которые могут быть только у женщин обязанности с такими кодами могут быть только у женщин SET FILTER TO OCCURS("51009", kod_obz)>0 OR OCCURS("51058", kod_obz)>0 OR OCCURS("51046", kod_obz)>0 OR OCCURS("51052", kod_obz)>0 OR OCCURS("51020", kod_obz)>0 OR OCCURS("51030", kod_obz)>0 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 14:24 |
|
Помогите выполнить запрос
|
|||
---|---|---|---|
#18+
Проверить "отсутствие" означает, найти хотя бы одно "наличие". Другими словами, если Вы найдете среди обязанностей, назначенных мужчинам, хотя бы одну женскую обязанность, значит - ошибка. Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 14:28 |
|
Помогите выполнить запрос
|
|||
---|---|---|---|
#18+
А как Вы различаете 1. Мужчин и женщин 2. Какие обязанности могут быть только у женщин 3. Какие обязанности могут быть только у мужчин Список кодов в тексте программы - крайне не удачное решение. Как временная "затычка" - пойдет. Но как постоянное решение - не годится. В подобных случаях, как правило, в таблице делают дополнительное поле, обозначающее, что вот эта обязанность может быть назначена только мужчине, только женщине или всем без ограничений. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 14:33 |
|
Помогите выполнить запрос
|
|||
---|---|---|---|
#18+
ВладимирМ, а как вы проверяете отсутствие обязанностей если вы не использовали ни одно из полей которых я указала? можно конкретнее с моими полями.. а то я мучаюсь сижу поэтому написала сюда ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 14:35 |
|
Помогите выполнить запрос
|
|||
---|---|---|---|
#18+
Диана06И вот как теперь проверить следующее: Отсутствие у мужчин обязанностей которые могут быть только у женщин обязанности с такими кодами могут быть только у женщин SET FILTER TO OCCURS("51009", kod_obz)>0 OR OCCURS("51058", kod_obz)>0 OR OCCURS("51046", kod_obz)>0 OR OCCURS("51052", kod_obz)>0 OR OCCURS("51020", kod_obz)>0 OR OCCURS("51030", kod_obz)>0 сначала не совсем понял про SET FILTER, как понимаю тут коды обязанностей которых не должно быть у мужчин. Тогда выбираем все что есть у мужчин и накладываем этот фильтр, если пусто - значит все нормально, если что-то в выборку попало - значит это обязанность которая не должна быть у мужчин но есть. Если этот запрос выбирает обязанности мужчин Диана06обязанности мужчин могу выбрать так Код: sql 1.
то оставить в нем только женские так: Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 14:37 |
|
Помогите выполнить запрос
|
|||
---|---|---|---|
#18+
Означает ли код вида Код: sql 1.
что в одной записи в поле kod_obz может быть указан список кодов? Почему нельзя было написать Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 14:37 |
|
Помогите выполнить запрос
|
|||
---|---|---|---|
#18+
ВладимирМ, в таком виде просто дали задание поэтому написала так: OCCURS("51009", kod_obz)>0, но главное что это коды которые не должны быть у мужчин ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 14:39 |
|
Помогите выполнить запрос
|
|||
---|---|---|---|
#18+
Dima T, написала запрос, который вы говорите. В результате пустая выборка. Я так понимаю Это правильно если у мужчин не встречаются обязанности, которые могут быть только у женщин? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 14:44 |
|
Помогите выполнить запрос
|
|||
---|---|---|---|
#18+
Dima T, и еще вопрос один, если можно.. Таблица obyazannosti вообще не нужна получается? Просто в том фильтре который мне дали поле kod_obz это было поле из таблицы obyazannosti ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 14:46 |
|
Помогите выполнить запрос
|
|||
---|---|---|---|
#18+
Диана06Dima T, и еще вопрос один, если можно.. Таблица obyazannosti вообще не нужна получается? Просто в том фильтре который мне дали поле kod_obz это было поле из таблицы obyazannosti Не нужна если поле kod_obz есть в таблице obyaz из которой идет выборка ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 14:50 |
|
Помогите выполнить запрос
|
|||
---|---|---|---|
#18+
Dima T, а если эти поля разные названия имеют? я запуталась и одно и то же поле написала но на самом деле так: SET FILTER TO OCCURS("51009", kod_obzyazannosti)>0 OR OCCURS("51058", kod_obzyazannosti)>0 OR OCCURS("51046", kod_obzyazannosti)>0 OR OCCURS("51052", kod_obzyazannosti)>0 OR OCCURS("51020", kod_obzyazannosti)>0 OR OCCURS("51030", kod_obzyazannosti)>0 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 14:57 |
|
Помогите выполнить запрос
|
|||
---|---|---|---|
#18+
и вообще мне кажется выборка должна идти из таблицы Obyazannosti, таблица Obyaz содержит только код обязанности. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 14:59 |
|
Помогите выполнить запрос
|
|||
---|---|---|---|
#18+
Дело такое. У человека есть функции за месяц он сделал что-то.. и в таблице Obyaz хранится информация об этом. т.е. В Obyaz хранится код обязанности, Id человека, и еще другие данные. А в таблице Obyazannosti Хранятся вообще все обязанности, которые вообще могут быть у людей ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 15:01 |
|
Помогите выполнить запрос
|
|||
---|---|---|---|
#18+
так правильно будет логически если посмотреть? Код: sql 1. 2. 3. 4.
В результате пустая выборка получается у меня. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 15:38 |
|
Помогите выполнить запрос
|
|||
---|---|---|---|
#18+
Dima T, я написала Ваш код, в таблице Obyaz изменила поле Kod_obyaz на 51009 т.е. такой может быть только у мужчины. И запустила. Все равно выборка пустая. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 16:05 |
|
Помогите выполнить запрос
|
|||
---|---|---|---|
#18+
сделала так: только просьба проверить логику Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 16:53 |
|
|
start [/forum/topic.php?fid=41&fpage=49&tid=1583350]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 272ms |
total: | 414ms |
0 / 0 |