Добавить значения даты и времени? и как сделать запрос из результатов одного запроса в другой запрос

То, что я хотел бы выполнить, - это обновить этот запрос, чтобы иметь возможность автоматически вытягивать текущий день, например, функцию getdate, чтобы дату не нужно было обновлять вручную ежедневно.

use n

select id, type, name, log_time , start_time , documents_created , pages_created, processed, processed_time  
from N_LF_OCR_LOG 
where 
--name like 'C-INV00410249%' -- CI11667474 (6).pdf' 
log_time between  '2017-3-07 00:00:00.000' and '2017-3-07 23:59:00.000'   
and documents_created <> 0 
or  ( documents_created is null and log_time between '2017-3-07 00:00:00.000' and '2017-3-07 23:59:00.000'  ) 
order by log_time

Затем из выполненных результатов я хотел бы, чтобы другой запрос запрашивал эти результаты, чтобы показать, когда: Любые результаты из столбца TYPE> с именем «email ocr в типе и универсальном производстве», где числа «documents_created & pages_created» не совпадают. (см. рисунок ниже)

введите здесь описание изображения

Также сообщите, если после этих строк файл «NULL» отсутствует или содержит менее 7 файлов.


person Jenesis    schedule 08.06.2017    source источник
comment
Пожалуйста, исправьте форматирование вашего запроса.   -  person Tim Biegeleisen    schedule 08.06.2017
comment
Я убрал пробелы. Это должно быть обновлено сейчас. знак равно   -  person Jenesis    schedule 08.06.2017


Ответы (1)


Вот хороший способ создать тестовый пример при публикации на SO. Ссылка на ваш SQL-запрос Я изменил вашу логическую логику И/ИЛИ в соответствии с тем, что, по моему мнению, вы пытались выполнить, и добавил комментарии также.

Добавление текущей даты в фильтры осуществляется через выражения:

  • Сегодняшняя полночь создается путем преобразования getdate() в дату, которая отбрасывает часть времени.

    ПРЕОБРАЗОВАТЬ(дата, получитьдату())

  • 23:59 сегодняшнего дня немного сложнее, но в основном преобразование даты и времени в представление с плавающей запятой, удаление временной части и добавление к ней конкретного времени «23:59»

    CONVERT(datetime,floor(CONVERT(float,getdate()))) + '23:59:00'

Часть 2. Я не думаю, что вам нужно создавать еще один запрос поверх результатов, чтобы получить то, что вы ищете. Вы можете просто добавить дополнительные условия, и вы также сможете фильтровать нужные типы с помощью созданных фильтров.

Если вы хотите снова запросить свои результаты, вам нужно создать предложение WITH, а затем вы можете выполнить «второй» запрос следующим образом:

-- first query
WITH my_subquery as (
    SELECT 1 as num
    FROM tbl)

-- second query
SELECT max(num) 
FROM my_subquery

EDIT Как и просили, здесь находится ссылка на первый запрос (без фильтра типов и созданный фильтр страницы) и здесь ссылка на второй запрос (с фильтром типов и фильтром созданных страниц).

person Daniel    schedule 08.06.2017
comment
Спасибо! Со второй частью. Я хотел бы вытащить строки «вложения» «распознавание электронной почты в типе и универсальном производстве» documents_created и pages_created, когда документы_созданные и страницы_созданные’ не совпадают. В отдельном отчете. Потому что будет работать одновременно - person Jenesis; 08.06.2017
comment
Я не уверен, для чего вы ссылаетесь. Также удалите использование N в верхней части вашего запроса, поскольку вы не можете указать онлайн-редактору sql использовать определенную базу данных для выполнения запроса. - person Daniel; 08.06.2017
comment
Ссылка в сообщении содержит запрос, который вы запрашиваете для части 2. - person Daniel; 08.06.2017
comment
Я добавил в пост две ссылки, они почти одинаковые, но вы можете запускать оба запроса отдельно для двух отчетов, если вам это нужно. - person Daniel; 08.06.2017
comment
ооо, мой плохой... Итак, есть ли способ сделать это без создания таблицы? - person Jenesis; 08.06.2017
comment
Не копируйте часть запроса CREATE TABLE или INSERT VALUES. Они существуют для того, чтобы вы могли запускать запросы прямо в своем веб-браузере и видеть, что они работают. Просто скопируйте из части SELECT..... - person Daniel; 08.06.2017
comment
если бы я хотел добавить запрос, если «documents_created» меньше 2 и «pages_created» больше 2. тогда ---- -- Отфильтровать строки, в которых количество созданных страниц и документов не равно. я бы добавил 'AND Documents_created ‹2 и pages_created ›2' - person Jenesis; 08.06.2017
comment
Да, это будет делать то, что вы хотите. - person Daniel; 08.06.2017