Добавить ключ для временной таблицы
Модераторы: m0p3e, edward_K, Модераторы
Добавить ключ для временной таблицы
Пожскажите пожалуйста.
Создала временную таблицу, описала составной индекс
table struct tab26
( ckau: comp,
sumob: double,
datob: date,
scheto:string,
subossch:string,
schetk:string,
subschk:string,
sodpr:string,
sodprr:string,
da1: date,
da2: date
) with index (d=da1+da2);
При компиляции ругается нужен ключ для da1+da2.
Как создать ключ для составного индекса?
Создала временную таблицу, описала составной индекс
table struct tab26
( ckau: comp,
sumob: double,
datob: date,
scheto:string,
subossch:string,
schetk:string,
subschk:string,
sodpr:string,
sodprr:string,
da1: date,
da2: date
) with index (d=da1+da2);
При компиляции ругается нужен ключ для da1+da2.
Как создать ключ для составного индекса?
Извините не получилось все равно ругается "Нужен ключ для da1+da2" хотя я написала так как вы сказали
table struct tab26
( ckau: comp,
sumob: double,
datob: date,
scheto:string,
subossch:string,
schetk:string,
subschk:string,
sodpr:string,
sodprr:string,
da1: date,
da2: date
) with index (i02 = da1+da2);
В чем может быть причина?
table struct tab26
( ckau: comp,
sumob: double,
datob: date,
scheto:string,
subossch:string,
schetk:string,
subschk:string,
sodpr:string,
sodprr:string,
da1: date,
da2: date
) with index (i02 = da1+da2);
В чем может быть причина?
Есть две временные таблицы
table struct tab25
( ckau: comp,
sumob: double,
datob: date,
scheto:string,
subossch:string,
schetk:string,
subschk:string,
sodprr:string
) with index (i0=ckau);
table struct tab26
( ckau: comp,
sumob: double,
datob: date,
scheto:string,
subossch:string,
schetk:string,
subschk:string,
sodpr:string,
sodprr:string,
da1: date,
da2: date
) with index (i02 = da1+da2);
Делаю добавление из таблицы tab26 в таблицу tab25 определенных полей
.begin
if getfirst tab26 = tsok message('Есть данные в таблице tab26')
{
insert tab25 (sumob, ckau, datob, scheto, subossch, schetk, subschk, sodprr)
select tab26.sumob, tab26.ckau, tab26.datob, tab26.scheto, tab26.subossch, tab26.schetk, tab26.subschk, tab26.sodprr from tab26
where (( dfor1 <<= tab26.da1
and dfor2 >>= tab26.da2 ))
;
}
end.
Выдает ошибку Нужен ключ da1+da2 для tab26
table struct tab25
( ckau: comp,
sumob: double,
datob: date,
scheto:string,
subossch:string,
schetk:string,
subschk:string,
sodprr:string
) with index (i0=ckau);
table struct tab26
( ckau: comp,
sumob: double,
datob: date,
scheto:string,
subossch:string,
schetk:string,
subschk:string,
sodpr:string,
sodprr:string,
da1: date,
da2: date
) with index (i02 = da1+da2);
Делаю добавление из таблицы tab26 в таблицу tab25 определенных полей
.begin
if getfirst tab26 = tsok message('Есть данные в таблице tab26')
{
insert tab25 (sumob, ckau, datob, scheto, subossch, schetk, subschk, sodprr)
select tab26.sumob, tab26.ckau, tab26.datob, tab26.scheto, tab26.subossch, tab26.schetk, tab26.subschk, tab26.sodprr from tab26
where (( dfor1 <<= tab26.da1
and dfor2 >>= tab26.da2 ))
;
}
end.
Выдает ошибку Нужен ключ da1+da2 для tab26
Потому что операторы
<<= и >>=
Применимы только к последней части индекса.
можно
или
А вот так ошибка
<<= и >>=
Применимы только к последней части индекса.
можно
Код: Выделить всё
Where
((
dfor1 <<= tab26.da1
And dfor2 >>= tab26.da1
))
Код: Выделить всё
Where
(( Какая то новая дата == tab26.da1
And dfor1 <<= tab26.da2
And dfor2 >>= tab26.da2
))
Код: Выделить всё
Where
((
dfor1 <<= tab26.da1
And dfor2 >>= tab26.da1
And Какая то новая дата == tab26.da2
))