Re: [SQL ] 關聯查尋
※ 引述《TonyQ (骨頭)》之銘言:
: 資料庫名稱: mssql 2005
: 資料庫版本:
: 內容/問題描述:
: 但是做月報表的時候需要查31次 會拖到速度
: 現在我想改成查詢特定日期區間 , 以日作group的數量總數
: 所以我用了以下的SQL
: SELECT sum(NUMS) AS 總數量, 總計 FROM A group by TXDAYS having
: SHON in (select SHON from B )
: and (TXDAYS >='2006/07/07') and TXDAYS <='2006/08/01" ;
用group的時候,除了group by的欄位外其他都必須是集合欄位
所以句子要改為如下才不會有語法錯誤:
SELECT sum(NUMS) AS 總數量,總計 FROM A group by TXDAYS,SHON having
SHON in (select SHON from B )
and (TXDAYS >='2006/07/07') and TXDAYS <='2006/08/01" ;
但這結果可能不是你要的,那就要這樣:
SELECT sum(View_A.NUMS) AS 總數量, sum(View_A.總計) FROM
(SELECT NUMS,總計 FROM A WHERE SHON in (select SHON from B)
and TXDAYS >='2006/07/07' and TXDAYS <='2006/08/01') AS View_A
group by TXDAYS;
邏輯上等於於先設一個view把不符的過濾掉再group by,只是也能用一個sql完成ꘊ
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 67.87.119.183
※ 編輯: dragon2 來自: 67.87.119.183 (09/26 08:12)
討論串 (同標題文章)
Database 近期熱門文章
PTT數位生活區 即時熱門文章