| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 973 人关注过本帖
标题:急需帮助,一条极其挑战的查询
取消只看楼主 加入收藏
ivantse
Rank: 1
等 级:等待验证会员
帖 子:16
专家分:0
注 册:2010-10-18
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:5 
急需帮助,一条极其挑战的查询
有四张表:
表 a      列名(类型)
id(int)   date(datetime)   num(int)

表 b
id(int)   date(datetime)   num(int)

表 c
id(int) did(int)  num(int)

表 d
id(int)   date(datetime)

c.did  与 d.id 关联

我想查出的表e如下: 每列的意思如列名
date(datetime)  sum_a_num(int)  sum_b_num(int)     sum_b_num(int)

说明:我想查出sum(a.num),sum(b.num),sum(c.num)   group by e.date;
结果表e.date包括表a、b、d 的 date, 即如果表a.date 有一个值为 '2010-01-01 0:00:00', 而b.date、d.date
没有这个值时,在这个'2010-01-01 0:00:00'时间sum(b.num)  sum(c.num)  的值显示为0 而不是显示为null

说得很乱,希望你们能帮上忙,谢谢!




[ 本帖最后由 ivantse 于 2010-10-30 21:03 编辑 ]
搜索更多相关主题的帖子: 挑战 查询 
2010-10-29 19:54
ivantse
Rank: 1
等 级:等待验证会员
帖 子:16
专家分:0
注 册:2010-10-18
收藏
得分:0 
为了说得清楚一点,我还是举个例子:
表a                                                   表b
id           date                 num                 id             date            num
1    '2010-01-01 12:12:12'         2                   1      '2010-01-01 12:12:12'   1
1    '2010-01-01 12:12:12'         3                   2      '2010-01-01 14:14:14'   4

表c (c.did=d.id)                        表d
id   did  num                           id            date                                                
1     1    3                            1      '2010-02-01 12:12:33'   
2     2    5                            2      '2010-03-01 12:12:33'   
3     3    1                            3      '2010-04-01 12:12:33'   

我想要的结果表e
        date              sum_a_num     sum_b_num    sum_c_num        
'2010-01-01 12:12:12'        5              1            0
'2010-01-01 14:14:14'        0              4            0
'2010-02-01 12:12:33'        0              0            3      
'2010-03-01 12:12:33'        0              0            5
'2010-04-01 12:12:33'        0              0            1


[ 本帖最后由 ivantse 于 2010-10-30 21:02 编辑 ]
2010-10-29 20:12
ivantse
Rank: 1
等 级:等待验证会员
帖 子:16
专家分:0
注 册:2010-10-18
收藏
得分:0 
回复 3楼 tangyunzhong
我已经尽量说清的了,看我只之后的一个例子。
2010-10-29 22:20
ivantse
Rank: 1
等 级:等待验证会员
帖 子:16
专家分:0
注 册:2010-10-18
收藏
得分:0 
回复 3楼 tangyunzhong
我的描述能力真的很有限,希望你能看得懂,帮帮忙!

有四张表:
表a
CREATE TABLE [dbo].[a] (
    a编号[aID] [int] IDENTITY (1, 1) NOT NULL ,
    a时间[aDate] [datetime] NULL ,
    a数量[aNum] [int] NULL
) ON [PRIMARY]
表b
CREATE TABLE [dbo].[b] (
    b编号[bID] [int] IDENTITY (1, 1) NOT NULL ,
    b时间[bDate] [datetime] NULL ,
    b数量[bNum] [int] NULL
) ON [PRIMARY]
表c
CREATE TABLE [dbo].[c] (
    c编号[aID] [int] IDENTITY (1, 1) NOT NULL ,
    d编号[dID] [int] NULL ,
    c数量[cNum] [int] NULL
) ON [PRIMARY]
表d
CREATE TABLE [dbo].[d] (
    d编号[dID] [int] IDENTITY (1, 1) NOT NULL ,
    d时间[dDate] [datetime] NULL
) ON [PRIMARY]

注:c.dID=d.dID

我想查出的表如下:

时间(datetime)    a数量的总数   b数量的总数  c数量的总数   (a数量的总数 即是统计a.aNum的和 sun(a.aNum))
 testDate1             ×            ×            ×
 testDate2             ×            ×            ×
 testDate3             ×            ×            ×

其中时间(datetime)列是从表a表b表d里面的时间列里面select出来的,所有在这些表出现过的时间都select出来,但不重复,
例如表a和表b都有'2010-01-01 12:23:45',这时在查出来的结果表的时间列里只有一个'2010-01-01 12:23:45'。

当表a的时间列有一个值为 '2010-01-01 0:00:00', 而表b,表d
没有这个值时,在查出来的结果表里  '2010-01-01 0:00:00'的那一条记录 b数量的总数、c数量的总数的值就为0


[ 本帖最后由 ivantse 于 2010-10-29 23:02 编辑 ]
2010-10-29 22:59
ivantse
Rank: 1
等 级:等待验证会员
帖 子:16
专家分:0
注 册:2010-10-18
收藏
得分:0 
回复 7楼 cnfarer
虽然一个表可以,但没张表都有不同的意义,我确实有这样的需求,可能是我表达需求不清楚的原因吧
2010-10-30 20:57
ivantse
Rank: 1
等 级:等待验证会员
帖 子:16
专家分:0
注 册:2010-10-18
收藏
得分:0 
回复 6楼 tangyunzhong
sum_c_num列我弄错了,我之前的描述出来错误,现在该过来了,你再看看!
2010-10-30 21:04
快速回复:急需帮助,一条极其挑战的查询
数据加载中...
 
   



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

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