作者dragon2 ()
看板Database
标题Re: [SQL ] 关联查寻
时间Tue Sep 26 08:11:14 2006
※ 引述《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)