以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教SQL语句写法  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=8817)

--  作者:xj22710
--  发布时间:2010/12/10 17:31:00
--  请教SQL语句写法
select a.区,sum(b.销售金额),sum(b.销售成本),sum(b.销售税) from jcxx a,xssj_2009 b where a.sku=b.sku and b.日期 between \'2009-12-1\' and \'2009-12-31\' group by a.区

select a.区,sum(b.销售金额),sum(b.销售成本),sum(b.销售税) from jcxx a,xssj_2010 b where a.sku=b.sku and b.日期 between \'2010-1-1\' and \'2010-1-31\' group by a.区

如上,两条语句分别查找2个结构完全相同的销售数据表(按年度制表),现在要求得到这两个月的销售总计(合并结果),如何用一条语句实现?

--  作者:狐狸爸爸
--  发布时间:2010/12/10 17:53:00
--  
select a.区,sum(b.销售金额),sum(b.销售成本),sum(b.销售税) from jcxx a,xssj_2009 b where a.sku=b.sku and b.日期 between \'2009-12-1\' and \'2009-12-31\'  or b.日期 between \'2010-1-1\' and \'2010-1-31\' group by a.区

--  作者:唐尸三摆手
--  发布时间:2010/12/10 18:03:00
--  
楼主需要从三个表提取数据的,二楼的代码好像不行的哦xssj_2009和xssj_2010 好像是两个表啊
--  作者:唐尸三摆手
--  发布时间:2010/12/10 18:08:00
--  

试试这个:

;with am as
(
select a.区,sum(b.销售金额),sum(b.销售成本),sum(b.销售税) from jcxx a,xssj_2009 b where a.sku=b.sku and b.日期 between \'2009-12-1\' and \'2009-12-31\' group by a.区

union
select a.区,sum(b.销售金额),sum(b.销售成本),sum(b.销售税) from jcxx a,xssj_2010 b where a.sku=b.sku and b.日期 between \'2010-1-1\' and \'2010-1-31\' group by a.区
)
select a.区,sum(b.销售金额) as 销售金额,sum(b.销售成本) as 销售成本,sum(b.销售税) as 销售税  from am group by a.区

[此贴子已经被作者于2010-12-10 18:08:55编辑过]

--  作者:xj22710
--  发布时间:2010/12/10 18:46:00
--  
楼上的估计是对的,但我的是SQL Sever 2000,好像不支持
--  作者:狐狸爸爸
--  发布时间:2010/12/11 0:21:00
--  

Select 区, sum(销售金额), Sum(销售成本), Sum(销售额) From

(select a.区 as 区, sum(b.销售金额) as 销售金额 ,sum(b.销售成本) as 销售成本, sum(b.销售税) as 销售额 from jcxx a,xssj_2009 b where a.sku=b.sku and b.日期 between \'2009-12-1\' and \'2009-12-31\' group by a.区 
UNION ALL

select a.区 as 区 ,sum(b.销售金额) as 销售金额, sum(b.销售成本) as 销售成本, sum(b.销售税) As 销售额 from jcxx a,xssj_2010 b where a.sku=b.sku and b.日期 between \'2010-1-1\' and \'2010-1-31\' group by a.区)

Group by 区


--  作者:wcs
--  发布时间:2010/12/11 21:39:00
--  

是的,用union

 

我以前是这样搞的。


--  作者:mr725
--  发布时间:2010/12/11 22:03:00
--  
Q盲!  简单的还能看看,这么复杂的俺不懂,使劲看也看不懂···  呵呵。  
--  作者:wcs
--  发布时间:2010/12/12 22:40:00
--  

多试试就可以了。

 

我的方法是,在ACCESS的设计视图里面做查询,可视化的很方便。

 

再在SQL视图里面看查询语句,复制到狐表里来,表名加个{}。