2017-02-17 3 views
0

У меня есть databaseOne базы данных SQL Server с помощью таблицы, которая имеет следующие столбцы:Выберите новые записи в SQL Server в соответствии с датой

company_name, счета, data_uploaded_date

Эта таблица имеет 100000 записей. Сегодня я загрузил 5000 новых строк данных в одну таблицу.

Мне нужен запрос, чтобы проверить, сколько новых фирменных имен есть, которые раньше не были в базе данныхOne?

ответ

0
select count(*) 
from table 
where data_uploaded_date = cast(getdate() as date) 
+0

он хотел проверить новые названия компаний, добавленные в эту дату !!! –

+0

ya getdate() frunction дает сегодняшнюю дату –

+0

okk я понял, в чем проблема –

0
SELECT 
    company_name, account, data_uploaded_date 
FROM 
    Records 
WHERE 
    CAST(data_uploaded_date as Date) = CAST(GETDATE() as Date) 
    AND company_name NOT IN (SELECT company_name 
          FROM Records 
          WHERE CAST(data_uploaded_date as Date) < CAST(GETDATE() as Date)) 
+0

В соответствии с вопросом, 'databaseOne' - это ** база данных ** - не таблица –

+0

спасибо @marc_s спасибо за разъяснение. Я знаю, что это имя базы данных, но имя таблицы не было упомянуто, поэтому я использовал это как таблицу. В любом случае исправил это;) – Rahul

0

Вы должны использовать Count с Distinct пункта. И IN не будет работать, если в нем содержится NULL. Так обрабатывается Null в подзапросе, который передается в NOT IN

SELECT COUNT(DISTINCT company_name) 
FROM TABLE1 
WHERE company_name NOT IN (
     SELECT DISTINCT ISNULL(company_name, '') 
     FROM TABLE1 
     WHERE data_uploaded_date < CAST(GETDATE() AS DATE) 
     ) 
AND data_uploaded_date >=CAST(GETDATE() AS DATE) 
Смежные вопросы