Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Войти | Зарегистрироваться )




>  Как организовать "срез последних/последних"?
szhukov
Отправлено: 07.09.11, 14:27


Молчаливый
*

Группа: Пользователи
Сообщений: 1
Регистрация: 15.10.09
Пользователь №: 1817


Цитата(РомаZ @ 09.06.11, 14:35) *
Примерно так:

// Входные параметры: 
//           @someDate: DATETIME

SELECT
    srcTable.id
    ,srcTable.Name
    ,srcTable.someOtherProperty
    ,srcTable.Date AS [Дата последнего изменения]
    ,@someDate AS [Дата среза]
    
FROM
    dbTable AS srcTable    // отсюда получаем информацию по id-ам из constraintaTable
    
    INNER JOIN
    (    // Получение последних идентификаторов на дату с дополнительными условиями
        SELECT
            dbTable.id,
            max(dbTable.data)
        FROM dbTable
        WHERE dbTable.data < @someDate
            AND дополнительные условия на отбор по данным таблицы
    ) AS constraintTable
    
    ON srcTable.id = constraintTable.id
    AND srcTable.data = constraintTable.data


забыл "Group By".

Вот код с исправлением:

// Входные параметры: 
//           @someDate: DATETIME

SELECT
    srcTable.id
    ,srcTable.Name
    ,srcTable.someOtherProperty
    ,srcTable.Date AS [Дата последнего изменения]
    ,@someDate AS [Дата среза]
    
FROM
    dbTable AS srcTable    // отсюда получаем информацию по id-ам из constraintaTable
    
    INNER JOIN
    (    // Получение последних идентификаторов на дату с дополнительными условиями
        SELECT
            dbTable.id,
            max(dbTable.data)
        FROM dbTable
        WHERE dbTable.data < @someDate
        //    AND дополнительные условия на отбор по данным таблицы
        
        [b]GROUP BY dbTable.id[/b]
        
    ) AS constraintTable
    
    ON srcTable.id = constraintTable.id
    AND srcTable.data = constraintTable.data


Не взлетит, потому что вложенный запрос:
        SELECT
            dbTable.id,
            max(dbTable.data)
        FROM dbTable
        WHERE dbTable.data < @someDate


вернет все записи smile.gif

Это делается не так
  Форум: Базы данных · Просмотр сообщения: #31456 · Ответов: 9 · Просмотров: 24054
 


Новые сообщения  Открытая тема (есть новые ответы)
Опрос  Опрос (есть новые голоса)
Нет новых сообщений  Открытая тема (нет новых ответов)
Нет новых голосов  Опрос (нет новых голосов)
Популярная тема  Горячая тема (есть новые ответы)
Закрыта  Закрытая тема
Нет новых  Горячая тема (нет новых ответов) Перемещена  Тема перемещена
 

RSS Текстовая версия Сейчас: 28.04.24, 5:26
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!