powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Не работает вложеный select c EXTRACT
9 сообщений из 9, страница 1 из 1
Не работает вложеный select c EXTRACT
    #39446696
sergey113
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хочу таким запросом получить выборку из таблицы с датой в нужном мне формате
Код: sql
1.
select TEL_MOB,ID, FAM, IME, OTCH, (SELECT CAST(lpad(EXTRACT(DAY FROM DATE_BORN),2,'0') AS varchar(2))||'.'|| CAST(lpad(EXTRACT(MONTH FROM DATE_BORN),2,'0') AS varchar(2))||'.'|| EXTRACT(YEAR FROM DATE_BORN) AS FDATE FROM PACIENT), POL, EMAIL, DOLZNOST, GOROD, STREET, DOM, KORP from pacient where TEL_MOB is not null order by FAM


но выдается ошибка multiple rows in singleton select
Не получается разобраться, что не так делаю. Переносил AS FDATE на скобки вложенного select, пробовал еще некотрые комбинации ошибка остается.
Подскажите, пожалуйста, что не так написал.
...
Рейтинг: 0 / 0
Не работает вложеный select c EXTRACT
    #39446699
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergey113,

подзапрс возвращает более одной записи, мог бы хоть ошибку перевести
...
Рейтинг: 0 / 0
Не работает вложеный select c EXTRACT
    #39446719
Граур Станислав
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем вообще нужен вложенный select ?

Код: plsql
1.
2.
3.
4.
5.
6.
select TEL_MOB,ID, FAM, IME, OTCH, 
CAST(lpad(EXTRACT(DAY FROM DATE_BORN),2,'0') AS varchar(2))||'.'|| CAST(lpad(EXTRACT(MONTH FROM DATE_BORN),2,'0') AS varchar(2))||'.'|| EXTRACT(YEAR FROM DATE_BORN) AS FDATE, 
POL, EMAIL, DOLZNOST, GOROD, STREET, DOM, KORP 
from pacient 
where TEL_MOB is not null 
order by FAM


P.S.
Скобки плиз считай сам.
Сейчас еще тебе скажут, что форматирование даты - дело клиентского приложения?
...
Рейтинг: 0 / 0
Не работает вложеный select c EXTRACT
    #39446722
sergey113
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисsergey113,

подзапрс возвращает более одной записи, мог бы хоть ошибку перевести

я перевел, понимаю что не так.. не знаю как сделать чтобы нормально было. Видимо надо объединять наборы данных но не нашел как это сделать.
...
Рейтинг: 0 / 0
Не работает вложеный select c EXTRACT
    #39446723
sergey113
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Граур СтаниславА зачем вообще нужен вложенный select ?

Код: plsql
1.
2.
3.
4.
5.
6.
select TEL_MOB,ID, FAM, IME, OTCH, 
CAST(lpad(EXTRACT(DAY FROM DATE_BORN),2,'0') AS varchar(2))||'.'|| CAST(lpad(EXTRACT(MONTH FROM DATE_BORN),2,'0') AS varchar(2))||'.'|| EXTRACT(YEAR FROM DATE_BORN) AS FDATE, 
POL, EMAIL, DOLZNOST, GOROD, STREET, DOM, KORP 
from pacient 
where TEL_MOB is not null 
order by FAM


P.S.
Скобки плиз считай сам.
Сейчас еще тебе скажут, что форматирование даты - дело клиентского приложения?

:)
Пока не сказали.
Вложенный select нужен как раз для изменения формата даты
...
Рейтинг: 0 / 0
Не работает вложеный select c EXTRACT
    #39446728
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergey113Вложенный select нужен как раз для изменения формата даты
Значит его можно (и нужно) вообще выкинуть.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Не работает вложеный select c EXTRACT
    #39446735
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

вот именно. Дату как двоичный формат, небось, не дураки придумали.

sergey113Вложенный select нужен как раз для изменения формата даты
чушь какая-то.
У вас же написано
Код: sql
1.
select field, (select func(field) from patient) from patient


Нахрена тут бессвязный внутренний суб-селект, если он обрабатывает те же самые столбцы patient? Если бы эти столбцы брались из другой таблицы, так все равно, можно было что суб-селект, что join, но суб-селект все равно должен быть связан с внешней таблицей.
...
Рейтинг: 0 / 0
Не работает вложеный select c EXTRACT
    #39451286
Оформи хранимой процедурой конвертацию даты в строку, и будет счастье

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SET TERM ^ ;

CREATE OR ALTER PROCEDURE SP_DATE_TO_STR (
    IN_DATE DATE)
RETURNS (
    DATESTR VARCHAR(10))
AS
BEGIN
  IF (IN_DATE IS NOT NULL) THEN 
  BEGIN
    DATESTR = SUBSTRING(100 + EXTRACT(DAY FROM :IN_DATE) FROM 2 FOR 2)
      || '.' ||
      SUBSTRING(100 + EXTRACT(MONTH FROM :IN_DATE) FROM 2 FOR 2)
      || '.' ||
      EXTRACT(YEAR FROM :IN_DATE);
  END
  SUSPEND;
END^

SET TERM ; ^



и потом можно использовать
Код: sql
1.
SELECT TEL_MOB, ID, FAM, IME, OTCH, (SELECT DATESTR FROM SP_DATE_TO_STR(DATE_BORN)) AS DATE_BORN  ... и т.д.
...
Рейтинг: 0 / 0
Не работает вложеный select c EXTRACT
    #39451743
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Идущий лесомОформи хранимой процедурой конвертацию даты в строку, и будет счастье


Простой CAST не прокатит?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Не работает вложеный select c EXTRACT
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]