| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1048 人关注过本帖
标题:一个SQL查询统计问题,急求答案!
只看楼主 加入收藏
mkb21
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-9-22
收藏
 问题点数:0 回复次数:3 
一个SQL查询统计问题,急求答案!
表1[Sell]
字段1:Id(唯一序号)
字段2:ProdID(产品ID,关联表[Product])
字段3:SpecifId(规格ID,关联表[Specif]),
字段4:Scalar(日销售数量)
字段5:myDate(日期yyyy-mm-dd格式)

表2[Product]
字段1:ID(唯一序号)
字段2:ProductName(产品名称)

表3[Specif]
字段1:Id(唯一序号)
字段2:SpecifName(规格)

如何做一个数据视图,内有
字段1:ID(序列号)
字段2:产品名
字段3:规格
字段4:1月
字段5:2月
字段6:3月
字段7:4月
字段8:5月
字段9:6月
字段10:7月
字段11:8月
字段12:9月
字段13:10月
字段14:11月
字段15:12月

能对应不同产品的不同规格统计出每个月份的数字出来。
做出来的表应该反映为:

产品名    规格    1月    2月    3月    4月    5月    6月    7月    8月    9月    10月    11月    12月
-----------------------------------------------------------------------------------------------------
A产品    a规格     20     59    70     120    163    189    200    233    258    300    310     350
B产品    b规格     18     34    67     114    159    234    267    282    329    368    420     456
C产品    c规格     ... ...
......
-----------------------------------------------------------------------------------------------------
记住:各产品不同规格的数字均为当月份多个每日记录的合计数,其中部分当月记录数为0,即没有销量。
请哪位高手给予指教,谢谢!^_^(附图)
图片附件: 游客没有浏览图片的权限,请 登录注册
(数据视图)
图片附件: 游客没有浏览图片的权限,请 登录注册
(希望做出的效果)

[[it] 本帖最后由 mkb21 于 2008-4-28 23:48 编辑 [/it]]
搜索更多相关主题的帖子: SQL 统计 查询 
2008-04-27 20:30
happynight
Rank: 8Rank: 8
等 级:贵宾
威 望:15
帖 子:807
专家分:760
注 册:2008-4-26
收藏
得分:0 
请搜索下交叉表 你的要求是要生成一个交叉表 2000版本的话 不直接支持交叉表 但是 可以自己写程序生成交叉表的效果 2000上的版本不知道支持否 没有用过

给个地址你 自己看下吧
http://www.

[[it] 本帖最后由 happynight 于 2008-4-28 09:44 编辑 [/it]]
2008-04-28 09:39
wdliu
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-11-26
收藏
得分:0 
这们写你试一下
SELECT P.ProductName,P.Specif,SUM(S.Scalar) Scalar,
       (CASE month(dateT) WHEN 1 THEN SUM(S.Scalar) ELSE 0 END) '1月',
       (CASE month(dateT) WHEN 2 THEN SUM(S.Scalar) ELSE 0 END) '2月',
       (CASE month(dateT) WHEN 3 THEN SUM(S.Scalar) ELSE 0 END) '3月',
       (CASE month(dateT) WHEN 4 THEN SUM(S.Scalar) ELSE 0 END) '4月',
       (CASE month(dateT) WHEN 5 THEN SUM(S.Scalar) ELSE 0 END) '5月',
       (CASE month(dateT) WHEN 6 THEN SUM(S.Scalar) ELSE 0 END) '6月',
       (CASE month(dateT) WHEN 7 THEN SUM(S.Scalar) ELSE 0 END) '7月'
  FROM product P LEFT OUTER JOIN Sell S
    ON P.ID=S.ProdID
GROUP BY P.ProductName,P.Specif,Month(DateT)
2008-04-28 11:44
mkb21
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-9-22
收藏
得分:0 
回复 3# 的帖子
还是不明白,请明示!

\\\\// ~\'~ ^
2008-04-28 23:14
快速回复:一个SQL查询统计问题,急求答案!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024951 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved