2017-02-17 45 views
0

選擇SQL Server的新紀錄。我在那有這些列的表的SQL Server數據庫databaseOne:按日期

COMPANY_NAME,帳戶,data_uploaded_date

這表有10萬個記錄。我今天將5000行新數據上傳到了同一張表中。

我需要一個查詢來檢查公司名稱有多少新的有哪些不是在databaseOne過嗎?

回答

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

他想檢查當天添加的新公司名稱! –

+0

ya getdate()功能給出今天的日期 –

+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

您需要使用CountDistinct條款。如果其中包含NULL,則IN將不起作用。所以在Subquery中處理爲空,傳遞給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)