Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите ПОЖАЛУСТА, КТО МОЖЕТ...
|
|||
|---|---|---|---|
|
#18+
короче есть две таблицы, одна родительская и дочерняя... в родительской хранятся уникальные записи , а в дочерней их причендалы по ключу связываю две табицы и в результате из дочерней выхватывает две записи, хотя там находится 6, почему незнаю, вот дистинг, найдите ошибку плиз... m_mes="Ìàé" m_god="2004" SELECT 1 USE c:\Reckon_Beznal\dbfs\svod_glav.dbf EXCLUSIVE set relation to set order to nnn SET FILTER TO mes=ALLTRIM(m_mes) AND god=ALLTRIM(m_god) SELECT 2 USE c:\Reckon_Beznal\dbfs\p296.dbf EXCLUSIVE SET ORDER TO nnn SET FILTER TO mes=ALLTRIM(m_mes) AND god=ALLTRIM(m_god) SELECT 3 USE c:\Reckon_Beznal\dbfs\table1.dbf EXCLUSIVE SELECT 1 GO TOP DO WHILE NOT EOF() m_nnn=svod_glav.nnn SELECT 2 LOCATE FOR p296.nnn=m_nnn IF FOUND()=.T. SELECT 3 APPEND BLANK replace table1.nnn WITH p296.nnn replace table1.kod WITH ALLTRIM(p296.kod) replace table1.naim WITH ALLTRIM(p296.naim) replace table1.mes WITH ALLTRIM(p296.mes) replace table1.god WITH ALLTRIM(p296.god) replace table1.p296 WITH p296.summe ENDIF SELECT 1 SKIP IF EOF() EXIT ENDIF ENDDO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 08:13 |
|
||
|
Помогите ПОЖАЛУСТА, КТО МОЖЕТ...
|
|||
|---|---|---|---|
|
#18+
А где у тебя сканирование по подчиненной таблице? Ты просто находишь первую попавшуюся запись в подчиненной таблице и записываешь ее в итог. А сканируешь только главную таблицу. Нужно вложенное сканирование. Примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 10:00 |
|
||
|
Помогите ПОЖАЛУСТА, КТО МОЖЕТ...
|
|||
|---|---|---|---|
|
#18+
Согласен с Владимиром М. Есть только одно замечание: А почему нельзя связать таблицы по set relation ? Почему надо использовать медленный locate , либо сканировать всю базу по scan ... for ... ? Можно было бы сделать так: select svod_glav set relation to nnn into p296 additive select svod_glav go top m_mes="Май" m_god="2004" do while not eof() m_nnn=svod_glav.nnn select p296 do while p296.nnn=m_nnn if p296.mes=ALLTRIM(m_mes) AND p296.god=ALLTRIM(m_god) INSERT INTO table1 (nnn, kod, naim, mes, god, p296) ; VALUES (p296.nnn, ALLTRIM(p296.kod), ALLTRIM(p296.naim), ; ALLTRIM(p296.mes), ALLTRIM(p296.god), p296.summe) endif select p296 skip enddo select svod_glav skip enddo ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 10:25 |
|
||
|
Помогите ПОЖАЛУСТА, КТО МОЖЕТ...
|
|||
|---|---|---|---|
|
#18+
Если тебе надо добавить в Table1 такие записи из p296, что подходят по дате и имеют запись в svod_glav с тем же NNN, то это делается одним оператором при установленном индексе в svod_glav и текущем алиасе Table1: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 11:31 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32517593&tid=1596611]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 354ms |

| 0 / 0 |
