全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:959
推到 Plurk!
推到 Facebook!

不重複資料之筆數???

缺席
TTS
初階會員


發表:72
回覆:66
積分:27
註冊:2003-05-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-29 17:52:07 IP:211.22.xxx.xxx 未訂閱
Select Count(*) from ( select Distinct ChartNo, CkInDate from InpAcnt where UseDate between DateTime(2004-01-01) year to day and DateTime(2004-01-01) year to day and (RollBackAcntSeq is null or RollbackAcntSeq = '') Group by ChartNo, CkInDate) 請問以上語法哪裡有錯呢 DB: Informix
allenchan
資深會員


發表:10
回覆:306
積分:283
註冊:2004-01-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-29 19:54:06 IP:61.230.xxx.xxx 未訂閱
Select Count(*) from ( select Distinct  ChartNo, CkInDate from InpAcnt where UseDate between    DateTime(2004-01-01) year to day and DateTime(2004-01-01) year to day and (RollBackAcntSeq is null or RollbackAcntSeq = '') Group by ChartNo, CkInDate) as tmp 你開頭用了 distinct 後頭的 group by 顯得多餘了,多個 as tmp 這樣試試看。 P.S 我是用 SQL 2000,可是這段碼我自己沒跑過,看起來藍色字體部份在 SQL 2000 是過不了的 ~~ 發表人 -
TTS
初階會員


發表:72
回覆:66
積分:27
註冊:2003-05-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-30 09:17:46 IP:61.218.xxx.xxx 未訂閱
樓上的大大 還是不行耶 不過錯誤的地方似乎是在Distinct上!!!
allenchan
資深會員


發表:10
回覆:306
積分:283
註冊:2004-01-06

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-11-30 09:43:26 IP:61.62.xxx.xxx 未訂閱
Select Count(*) from ( select Distinct ChartNo, CkInDate from InpAcnt where UseDate between DateTime(2004-01-01) year to day and DateTime(2004-01-01) year to day and (RollBackAcntSeq is null or RollbackAcntSeq = '') Group by ChartNo, CkInDate) as tmp 您如何得知錯誤是在 distinct 呢?那不用 distinct 改用 group by 呢?因為我沒有 infomix,所以沒辦法幫您實際測試看看。
TTS
初階會員


發表:72
回覆:66
積分:27
註冊:2003-05-06

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-12-08 13:51:25 IP:211.75.xxx.xxx 未訂閱
Sorry 用Group還是不行耶!!!
allenchan
資深會員


發表:10
回覆:306
積分:283
註冊:2004-01-06

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-12-08 14:02:25 IP:203.70.xxx.xxx 未訂閱
先把問題單純化: 第一步: select Distinct ChartNo, CkInDate from InpAcnt 如果沒問題,第二步: select Distinct ChartNo, CkInDate from InpAcnt where RollBackAcntSeq is null or RollbackAcntSeq = '' 如果沒問題,第三步: select Distinct ChartNo, CkInDate from InpAcnt where UseDate between DateTime(2004-01-01) year to day and DateTime(2004-01-01) year to day and (RollBackAcntSeq is null or RollbackAcntSeq = '') 以此類推,順便試試看: Select Count(*) from ( select Distinct ChartNo, CkInDate from InpAcnt ) as tmp 或者 Select Count(*) from ( select Distinct ChartNo, CkInDate from InpAcnt )
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-12-08 17:09:11 IP:61.70.xxx.xxx 未訂閱
建議如果有錯誤訊息的話可以貼出來,比較好知道問題出在哪裡,我按照上面的語法,寫了類似的一段在SQL 2000中Run並沒有問題,程式碼如下,您參考看看 SELECT COUNT(*) AS Expr1 FROM (SELECT DISTINCT ChartNo, CkInDate FROM InpAcnt WHERE UseDate BETWEEN '2004/01/01' AND '2004/12/01' GROUP BY ChartNo, CkInDate ) DERIVEDTBL 或者用下面這個方法試試 SELECT COUNT(*) AS Expr1 FROM (SELECT ChartNo, CkInDate FROM InpAcnt GROUP BY ChartNo, CkInDate HAVING (COUNT(*) = 1)) DERIVEDTBL 發表人 - supman 於 2004/12/08 17:18:03
TTS
初階會員


發表:72
回覆:66
積分:27
註冊:2003-05-06

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-12-23 23:53:12 IP:220.134.xxx.xxx 未訂閱
Select Count(*) from ( select Distinct ChartNo, CkInDate from InpAcnt ) as tmp 小弟試過 只要是把Distinct放在子查詢裡就是會發生語法錯誤!!!
系統時間:2024-06-24 21:39:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!