Re: [SQL ] 關聯查尋

看板Database (資料庫)作者時間18年前 (2006/09/26 07:57), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
※ 引述《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)
文章代碼(AID): #1566pTi5 (Database)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
3
3
完整討論串 (本文為第 2 之 3 篇):
3
3
文章代碼(AID): #1566pTi5 (Database)