| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 973 人关注过本帖
标题:急需帮助,一条极其挑战的查询
只看楼主 加入收藏
ivantse
Rank: 1
等 级:等待验证会员
帖 子:16
专家分:0
注 册:2010-10-18
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:11 
急需帮助,一条极其挑战的查询
有四张表:
表 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
tangyunzhong
Rank: 5Rank: 5
来 自:广西
等 级:职业侠客
威 望:4
帖 子:97
专家分:364
注 册:2010-7-28
收藏
得分:0 
回复 楼主 ivantse
你自己都知道你说得很乱了,人家什么能看得懂你的需求啊!
写明白你的需求吧.
2010-10-29 22:01
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
tangyunzhong
Rank: 5Rank: 5
来 自:广西
等 级:职业侠客
威 望:4
帖 子:97
专家分:364
注 册:2010-7-28
收藏
得分:0 
回复 ivantse
你说得那么多,但是不知道是我水平问题还是你的表达问题,还是没有看出来你的问题.
        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            5      
'2010-03-01 12:12:33'        0              0            6
'2010-04-01 12:12:33'        0              0            2

sum_c_num 这列什么得来的,根据你的描述,sum_c_num这列是表C列num的和,但从结果来看是D表的的数据.你说的C表和D表的关系,而关系是这样表达的吗?也看不出来是怎么样的关系.而且前后描述表的结构都不一样,还能说你描述得清楚啦
图片附件: 游客没有浏览图片的权限,请 登录注册

上面是我按你的想法做出来的.是不是你要的结果啊!就是时间多了毫秒还没有处理.

[ 本帖最后由 tangyunzhong 于 2010-10-30 08:44 编辑 ]
2010-10-30 07:49
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:1 
哪里是什么挑战?分明是一个纠结(不是SQL语句如何写的问题)。你的这些表,似乎只用一个表就可以了,不知道各表的含义是什么?要做什么(似乎是)统计?

★★★★★为人民服务★★★★★
2010-10-30 08:21
tangyunzhong
Rank: 5Rank: 5
来 自:广西
等 级:职业侠客
威 望:4
帖 子:97
专家分:364
注 册:2010-7-28
收藏
得分:0 
回复 7楼 cnfarer
呵呵,我还以为只有我一个人觉得这样呢!
说不好听,看来他是没有学过SQL吧!所以说得不清楚也不要怪他.我们是想帮他,但他表达不出来,我们就是写出来了,也有可能不是他想要的效果哦
2010-10-30 08:42
ivantse
Rank: 1
等 级:等待验证会员
帖 子:16
专家分:0
注 册:2010-10-18
收藏
得分:0 
回复 7楼 cnfarer
虽然一个表可以,但没张表都有不同的意义,我确实有这样的需求,可能是我表达需求不清楚的原因吧
2010-10-30 20:57
tangyunzhong
Rank: 5Rank: 5
来 自:广西
等 级:职业侠客
威 望:4
帖 子:97
专家分:364
注 册:2010-7-28
收藏
得分:0 
你没有看到我给你写吗,你写的东西前后不一致啊,我们都能写出来你的需求
2010-10-30 20:59
快速回复:急需帮助,一条极其挑战的查询
数据加载中...
 
   



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

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