|
|
|
Проверка наличия номера...
|
|||
|---|---|---|---|
|
#18+
Подскажите, а то совсем потерялся... Проблема в следующем: есть список сотрудников, у каждого из них есть свой id, который есть значение поля-счетчика. Мне нужно на каждый id создать запись в новой таблице. Это сделал: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Но если кого-то из сотрудников увольняют, то в этой таблице появляется пустая строка. То есть уволили сотрудника с id=5 - появится ненужная мне строка с men_id=5. Как это обойти? Как вариант думаю поменять первую строку кода на Код: plaintext а как проверить во время цикла (прежде чем присваивать !men_id=i) - есть ли такой номер сотрудника или нет? С уважением... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 14:51 |
|
||
|
Проверка наличия номера...
|
|||
|---|---|---|---|
|
#18+
If DCount("[men_id]", "Sotrudniki", "[men_id]=" & CStr(i)) > 0 Then ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 15:07 |
|
||
|
Проверка наличия номера...
|
|||
|---|---|---|---|
|
#18+
А вообще лучше не циклом, а одним инсертом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 15:07 |
|
||
|
Проверка наличия номера...
|
|||
|---|---|---|---|
|
#18+
... не понял. Вопрос не в этом: как узнать в процессе выполнения цикла, что очередное значение i (переменной цикла) отсутствует в id сотрудников? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 15:11 |
|
||
|
Проверка наличия номера...
|
|||
|---|---|---|---|
|
#18+
а как одним инсертом вставить строки для всех имеющихся id в таблице сотрудники? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 15:13 |
|
||
|
Проверка наличия номера...
|
|||
|---|---|---|---|
|
#18+
На данный момент всё это выглядит так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 15:17 |
|
||
|
Проверка наличия номера...
|
|||
|---|---|---|---|
|
#18+
> Вопрос не в этом: как узнать в процессе выполнения цикла, что очередное значение i (переменной цикла) отсутствует в id сотрудников? А в чем? > а как одним инсертом вставить строки для всех имеющихся id в таблице сотрудники? INSERT INTO таблица ( men_id) SELECT men_id FROM Sotrudniki; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 15:18 |
|
||
|
Проверка наличия номера...
|
|||
|---|---|---|---|
|
#18+
Владимир Саныч: сорри, не понял сначала строки с DCount. Всё ясно, спасибо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 15:25 |
|
||
|
Проверка наличия номера...
|
|||
|---|---|---|---|
|
#18+
А по поводу инсерта неясно не то, как пишуться ключевые слова, а то как присваивать, к примеру, каждому полю дата для всех вновь созданных записей значение Date(). Или полю summa_zp - значение последней summa_zp в этой таблице для каждого id? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 15:36 |
|
||
|
Проверка наличия номера...
|
|||
|---|---|---|---|
|
#18+
>каждому полю дата для всех вновь созданных записей значение Date(). в поле cdqjcndj DeafultValue = Date() и не упоминай это поле при встаке INSERTом или формируй динамически SQL строку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 15:43 |
|
||
|
Проверка наличия номера...
|
|||
|---|---|---|---|
|
#18+
> как присваивать, к примеру, каждому полю дата для всех вновь созданных записей значение Date(). INSERT INTO ZP ( men_id, data_zp ) SELECT men_id, Date() AS data_zp FROM Sotrudniki; > Или полю summa_zp - значение последней summa_zp в этой таблице для каждого id? Что значит последней? Их для каждого id несколько? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 15:44 |
|
||
|
Проверка наличия номера...
|
|||
|---|---|---|---|
|
#18+
> Владимир Саныч: Что значит последней? Их для каждого id несколько? Да, их несколько, поскольку этой строкой происходит автоматическое заполнение нового листа зарплат на новый месяц. Данные последних сумм должны автоматом быть в новых, дабы имелась возможность видеть уровень последней зарплаты и на этом решать - изменять её для кого-то или нет.... Вот так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 15:50 |
|
||
|
Проверка наличия номера...
|
|||
|---|---|---|---|
|
#18+
Тогда так: INSERT INTO ZP ( men_id, data_zp, last_zp ) SELECT men_id, Date() AS data_zp, First(xxx.last_zp) FROM Sotrudniki INNER JOIN xxx GROUP BY men_id; где xxx - это запрос, в котором взята таблица листов зарплат и рассортирована по дате по убыванию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 16:15 |
|
||
|
Проверка наличия номера...
|
|||
|---|---|---|---|
|
#18+
Спасибо, Владимир Саныч за отзывчивость. А почему ты считаешь, что циклом будет хуже? Он что - медленнее будет выполняться? Есть ли смысл сейчас все менять на инсерт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 16:20 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32229089&tid=1680080]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 366ms |

| 0 / 0 |
