|
|
|
Нужна помощь по выборке из базы
|
|||
|---|---|---|---|
|
#18+
Есть база (MySQL), в ней есть таблицы: "sotrudniki" и "tabel". В таблице "tabel" есть поля: id_sotr, data_rab, smena_priznak и т.д. Пытаюсь выбрать из таблицы "tabel" всех сотрудников, у которых smena_priznak не равно ('Я','СМ') и сотрудников, не имеющих записи в табеле (например забыли отметить) Если пишу так Код: plsql 1. 2. 3. 4. 5. то выдает всех, в том числе и тех, кого не отметили. А если так Код: plsql 1. 2. 3. 4. 5. то, кроме тех у кого smena_priznak не равно ('Я','СМ'), пропадают и те, кого не отметили (т.е. с NULL), Может еще есть какой-то способ отбросить из результата лишнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2014, 15:36:07 |
|
||
|
Нужна помощь по выборке из базы
|
|||
|---|---|---|---|
|
#18+
Запрос не соответствует логике. Внеси проверку на неравенство признака в условие связывания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2014, 15:38:29 |
|
||
|
Нужна помощь по выборке из базы
|
|||
|---|---|---|---|
|
#18+
AkinaЗапрос не соответствует логике. Внеси проверку на неравенство признака в условие связывания. Пробовал, тогда получаю NULL для всех записей, кроме tabel.smena_priznak NOT IN ('Я','СМ') ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2014, 15:58:09 |
|
||
|
Нужна помощь по выборке из базы
|
|||
|---|---|---|---|
|
#18+
nik2101, тогда вот так Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2014, 09:09:51 |
|
||
|
Нужна помощь по выборке из базы
|
|||
|---|---|---|---|
|
#18+
Станислав Клевцовnik2101, тогда вот так Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Спасибо, но результат аналогичен результату моего запроса (№2). Т.е. nik2101пропадают и те, кого не отметили (т.е. с NULL) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2014, 09:21:49 |
|
||
|
Нужна помощь по выборке из базы
|
|||
|---|---|---|---|
|
#18+
nik2101, Тогда уточняющий вопрос: вы хотите выбрать сотрудников: 1) у которых tabel.data_rab is null (не отметили ) и tabel.smena_priznak NOT IN ('Я','СМ') 2) tabel.data_rab is null (не отметили ) или tabel.smena_priznak [b]NOT IN ('Я','СМ') ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2014, 09:41:23 |
|
||
|
Нужна помощь по выборке из базы
|
|||
|---|---|---|---|
|
#18+
Станислав Клевцов, Я хочу выбрать следующих сотрудников: 1. для которых в табеле есть записи на определенную дату (например tabel.data_rab='2014-10-15') 2. для которых в табеле нет записей на ту же дату, что и для п.1 (например tabel.data_rab='2014-10-15') и отбросить из результата тех, для которых tabel.smena_priznak='Я' или 'СМ'. Вот результат выполнения первого запроса id data_rab smena_priznak 1 2014-10-15 Я 5 2014-10-15 СМ 10 2014-10-15 Я 11 NULL NULL - для сотрудника с id=11 нет записи в табеле на дату '2014-10-15' 12 2014-10-15 Я ......................................... 476 2014-10-15 Б - для сотрудника с id=476 есть запись в табеле на дату '2014-10-15' 109 2014-10-15 ОТ Вот результат выполнения второго запроса id data_rab smena_priznak 476 2014-10-15 Б 109 2014-10-15 ОТ 431 2014-10-15 134 2014-10-15 ДО 144 2014-10-15 В Как видно пропали не только записи, для которых tabel.smena_priznak='Я' или 'СМ', но и 11 NULL NULL . Т.е. нужен результат вроде этого: id data_rab smena_priznak 11 NULL NULL 476 2014-10-15 Б 109 2014-10-15 ОТ 431 2014-10-15 134 2014-10-15 ДО 144 2014-10-15 В ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2014, 10:24:47 |
|
||
|
Нужна помощь по выборке из базы
|
|||
|---|---|---|---|
|
#18+
nik2101, для 1 случая : автор1. для которых в табеле есть записи на определенную дату (например tabel.data_rab='2014-10-15') Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2014, 10:43:49 |
|
||
|
Нужна помощь по выборке из базы
|
|||
|---|---|---|---|
|
#18+
nik2101, и 2 случая Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2014, 10:56:52 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38779407&tid=1834068]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
52ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 317ms |

| 0 / 0 |
