1) Personal(personalid,fio,hiredate,sa lary..), где FIO char(50)
2)TRIP(tripid, tripnumb,week_day...), где WEEK_DAY char(11)
Нужно вывести минимум из двух: количество сотрудников с ФИО, содержащим две буквы "а" и количеством рейсов по понедельникам.
PHP код:
Код: Выделить всё
CREATE PROCEDURE "MINOFTWO"
RETURNS
(
"MNDTRIP" INTEGER,
"FIOTRIP" INTEGER,
"MINOFTHIS" INTEGER
)
AS
BEGIN
SELECT COUNT(WEEK_DAY)
FROM TRIP
WHERE WEEK_DAY='понедельник'
INTO :MNDTRIP;
SELECT COUNT(FIO)
FROM PERSONAL
/*WHERE (LENGTH(FIO)-LENGTH(FIO NOT LIKE '%а%')=2)*/
WHERE FIO LIKE '%а%'
INTO :FIOTRIP;
IF (MNDTRIP<FIOTRIP) THEN
BEGIN
MINOFTHIS=MNDTRIP;
END
ELSE
BEGIN
MINOFTHIS=FIOTRIP;
END
END
Проблема в том, что нужно сделать подобие следующего:
PHP код:
/*WHERE (LENGTH(FIO)-LENGTH(FIO NOT LIKE '%а%')=2)*/
,но я не могу найти в книгах по IB как использовать длину строк, чтобы оживить этот алгоритм)
SQL начал изучать совсем недавно)
Спасибо.