Альтернатива синтаксису даты «интервал» для IBM solidDB - PullRequest
1 голос
/ 16 марта 2011

Для исследовательского проекта я использую SolidDB от IBM, чтобы выполнить несколько тестовых запросов. Набор данных, который я использую, - это набор данных TPC-H, поэтому использование входящих в него запросов кажется логичным выбором. Однако в 8 из 19 запросов используется синтаксис интервала даты SQL-92:

select
    l_returnflag,
    l_linestatus,
    sum(l_quantity) as sum_qty,
    sum(l_extendedprice) as sum_base_price,
    sum(l_extendedprice * (1 - l_discount)) as sum_disc_price,
    sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) as sum_charge,
    avg(l_quantity) as avg_qty,
    avg(l_extendedprice) as avg_price,
    avg(l_discount) as avg_disc,
    count(*) as count_order
from
    lineitem
where
    l_shipdate <= date '1998-12-01' - interval ':1' day (3)
group by
    l_returnflag,
    l_linestatus
order by
    l_returnflag,
    l_linestatus;

Значение: 1 заполнено генератором запросов как число. Согласно Solid IBM solidDB SQL Guide , solidDB не поддерживает ключевое слово интервал.

Чтобы использовать шаблоны запросов, поставляемые с эталонным тестом TPC-H, мне нужен какой-то альтернативный синтаксис для вычитания дней из даты и т.п. TIMESTAMPADD , похоже, тоже мало что сделал, поэтому в данный момент у меня нет идей.

Ответы [ 2 ]

2 голосов
/ 16 марта 2011

Я не эксперт по solidDB, но ссылка, которую вы дали, имеет такой синтаксис ...

SELECT NAME, {fn
TIMESTAMPADD(SQL_TSI_YEAR, 1,
HIRE_DATE)} FROM
EMPLOYEES

Попробуйте поставить {fn} вокруг вызова функции?

1 голос
/ 21 декабря 2011

скалярные функции с некоторыми примерами перечислены в Руководство программиста .В версии 7.0 вы также можете писать внешние функции и процедуры на C, если чего-то не хватает.Дополнительную информацию можно найти в SQLGuide> Справочник по SQL

, если у вас есть какие-либо вопросы, касающиеся solidDB, не стесняйтесь отправлять их также на IBM developerWorks .

Cheers, VilhoRaatikka

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...