求一个查询语句

rottenapple 2009-11-04 02:58:15
两张表,sale, client。 sale里面有client_id, 在Clinet里面有一个字段表示address。由于客户可能变换地址,有一个Current_IND=Y来标示现在的值,两个columns, v_from,v_to标示历史的变化,并且current_ind is null。 现在我想按月汇总sale的数据,并且也显示出address.如果client在月中修改了他的地址,则按照这个月最后修改的地址显示,请问怎么写呢。谢谢
...全文
264 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
rottenapple 2010-03-03
  • 打赏
  • 举报
回复
谢谢大家,自己想得有些迷糊了,结贴
sharpidd 2009-11-11
  • 打赏
  • 举报
回复
select decode(c.client_id,'Y',v_to,address)
from sale s
,client c
where s.client_id=c.client_id
小灰狼W 2009-11-11
  • 打赏
  • 举报
回复
要统计sale表中的数据,最后关于sale表什么都没说..又多了一个asset
给出测试数据吧,附上你想要的结果
比较明了一些
楼主几天才来看一次呢
kbzl251 2009-11-10
  • 打赏
  • 举报
回复

有点不明白你说的意思。
是不是说
Client表里City_code改后,Asset表记录日期Asset_Date字段修改为最后修改City_code日期?
wflyxiaonian 2009-11-09
  • 打赏
  • 举报
回复
不懂呢
terry915 2009-11-09
  • 打赏
  • 举报
回复
看了几遍,晕了,还是没说明白什么问题
rottenapple 2009-11-09
  • 打赏
  • 举报
回复
谢谢楼上的,其实我的逻辑还稍微复杂一点。没把问题说清楚,不好意思了。 Sale表这个没有问题,还有一个Asset表,这个表表示的资产总数。对一个客户来说,每个月只存储一条记录,但是它会每周末重新算一次。现在的问题是,如果这个客户在月中修改了他的地址,那么他的Asset就要按照最后修改的那个开始月份计算。如下:
Asset Table
Asset_Date Client_ID Assets
200908 001 2000
200909 001 2300
Client Table
Client_ID From_Date To_Date Currenty_Flag City_Code
001 20090101 20090914 N BJ
001 20090915 Y SH

这时候如果我统计200908的Assets值,001应该属于BJ,如果是200909,应该属于SH。
BlueskyWide 2009-11-06
  • 打赏
  • 举报
回复
--其中abc_date(两表中的任意之一字段)为修改地址的日期
select a.*
from sale a, client b
where a.client_id = b.client_id
and b.Current_IND = 'Y'
and to_char(abc_date, 'yyyymmdd') >= 20091001
and to_char(abc_date, 'yyyymmdd') <= 20091031;
zhangwonderful 2009-11-06
  • 打赏
  • 举报
回复
楼主怎么没有回应?
inthirties 2009-11-04
  • 打赏
  • 举报
回复
给写data看看,有例子数据比较好理解逻辑一些。
小灰狼W 2009-11-04
  • 打赏
  • 举报
回复
看样子不会很难
可是没有例子和表结构,实在是无从写起..
zhangwonderful 2009-11-04
  • 打赏
  • 举报
回复
表结构以及样例数据和要达到的效果粘贴出来看看
liusong_china 2009-11-04
  • 打赏
  • 举报
回复
Clinet表中Current_IND=Y的那条记录不就是最后的地址吗?

最好把表结构贴出来看看

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧