我有一個查詢在上週選擇[orderdate]作爲網站。 我希望能夠在一天內爲一個給定的網站只選擇一條記錄。 我的解決方案如下:SQL Server每天選擇一條記錄
select
SiteName
, OrderDate
from
Table1
where
OrderDate >= dateadd(dd,(datediff(dd,-53690,getdate()-1)/7)*7,-53690)
,但是當你看一下結果,你會發現日期爲21 SITE2它給出了兩個記錄。我只需要選擇一個。
SiteName..................OrderDate
Site1....................2014-04-21 16:00:37.650
Site2....................2014-04-21 16:00:39.697
Site2....................2014-04-21 16:00:39.697
Site3....................2014-04-21 16:00:35.180
Site1....................2014-04-22 16:00:46.113
Site2....................2014-04-22 16:00:50.817
Site3....................2014-04-22 16:00:53.163
Site1....................2014-04-23 16:00:50.993
Site2....................2014-04-23 16:00:53.193
Site3....................2014-04-23 16:00:55.727
**編輯**問題
你好,抱歉,這是非常複雜的不是簡單地將不同。下面是包括整個查詢,但我最初只包括爲簡單起見,它的一部分:
select distinct
SiteName
,SUM(Case
When
OrderDate >= dateadd(dd,(datediff(dd,-53690,getdate()-1)/7)*7,-53690) Then
1
Else
0
End
) as Completed
from
table1
where
CLIENT in ('Site1','Site2','Site3','Site4','Site5','Site6','Site7')
and
SiteName != '(Site8)'
GROUP BY
SiteName
order by
SiteName
我只選擇7位,避免網站8 結果是
網站名稱...... ............已完成
Site1 ......................... 3
Site2 .......................... 4
Site3。 ......................... 3
Site4 ................... ....... 3
Site5 .......................... 3
Site6 ..... ..................... 2
Sit7 ....................... .... 2
站點2的數應該是3而不是4個,但儘管使用不同的查詢仍在增加2個記錄該日期
你好,抱歉,這是非常複雜的不是簡單地插入distinct.My糟糕了,我應該已經包含了整個查詢,但我只是爲了簡單起見,它的一部分,完整的查詢是如下選擇不同的網站名 , SUM(案例當訂購日期> = DATEADD(DD,(DATEDIFF(DD,-53690,GETDATE() - 1)/ 7)* 7,-53690) 然後1 否則0 完)從表1,其中CLIENT完成 ('Site1','Site2','Site3','Site4','Site5','Site6','Site7')我只選擇了7個避免si的網站te 8 –
請更新與完整查詢的問題...不要留在這裏的評論。 – Frazz
感謝邁克爾,但我使用循環計數的原因,因爲它需要照顧的情況下,如果沒有記錄的網站,它仍然給我0作爲計數 –