| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 590 人关注过本帖
标题:各位老师,这个sql语句怎么写
只看楼主 加入收藏
a1999zqw
Rank: 1
等 级:新手上路
帖 子:186
专家分:0
注 册:2009-4-3
结帖率:78.95%
收藏
已结贴  问题点数:20 回复次数:4 
各位老师,这个sql语句怎么写
af.dbf已经根据字段款号、品名、尺寸 、颜色、条码、原价相同的记录合并,但by.dbf没有。
现在根据字段款号、品名、尺寸 、颜色、条码、原价相同的记录2个表合并,结果放在新表中,字段维持不变,字段值需要变化的是以下4个:
数量=af.dbf的数量-by.dbf的数量
实际金额=af.dbf的实际金额-by.dbf的实际金额
平均售价=(af.dbf的实际金额-by.dbf的实际金额)/(af.dbf的数量-by.dbf的数量),
原价金额=af.dbf的原价*(af.dbf的数量-by.dbf的数量),

并且如果by.dbf中的记录没有出现在af.dbf中,那也要反映在新表中,数量和实际金额用负值表示
求助sql.rar (5.38 KB)


[ 本帖最后由 a1999zqw 于 2011-12-28 18:56 编辑 ]
搜索更多相关主题的帖子: 记录 sql语句 
2011-12-28 09:08
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
收藏
得分:7 

用 left join~  看下 left join 的帮助, 就应该知道怎么做了, 很简单的~

2011-12-28 17:12
a1999zqw
Rank: 1
等 级:新手上路
帖 子:186
专家分:0
注 册:2009-4-3
收藏
得分:0 
老师,是这样吗?忘说了,af.dbf已经根据字段款号、品名、尺寸 、颜色、条码、原价相同的记录合并,但by.dbf没有
select a.f1,a.f2,a.f3,a.f4,a.f5,a.f6,sum(a.f11-iif(b.f11 is null,0,b.f11))/sum(a.f8-iif(b.f8 is null,0,b.f8)),sum(a.f8-iif(b.f8 is null,0,b.f8)),a.f9,sum(a.f8-iif(b.f8 is null,0,b.f8))*a.f6,sum(a.f11-iif(b.f11 is null,0,b.f11)),a.f12  FROM [af.dbf] AS A Left  JOIN (SELECT f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,sum(f11) as f11,f12 FROM [by.dbf] GROUP BY f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12) AS B ON A.f1 =B.f1 AND A.f2 =B.f2 AND A.f3 =B.f3 AND A.f4 =B.f4 and A.f5 =B.f5 AND A.f6 =B.f6  group by a.f1,a.f2,a.f3,a.f4,a.f5,a.f6,a.f7,a.f8,a.f9,a.f10,a.f12
2011-12-28 18:53
软件服务
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:344
专家分:736
注 册:2011-12-23
收藏
得分:7 
SELECT 款号,品名,尺寸,颜色,条码,原价,
af.数量-by.数量 as 数量
FROM af INNER JOIN by
ON af.款号=by.款号
and af.品名=by.品名

自己如法炮制
2011-12-28 20:13
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:7 
回复 3楼 a1999zqw
sum(a.f11-iif(b.f11 is null,0,b.f11))/sum(a.f8-iif(b.f8 is null,0,b.f8)),
sum(a.f8-iif(b.f8 is null,0,b.f8)),a.f9,sum(a.f8-iif(b.f8 is null,0,b.f8))*a.f6,sum(a.f11-iif(b.f11 is null,0,b.f11)),
改为:sum(a.f11-iif(b.f11 is null,0,b.f11))/sum(a.f8-iif(b.f8 is null,0,b.f8)) f12,sum(a.f8-iif(b.f8 is null,0,b.f8)) f8,a.f9,sum(a.f8-iif(b.f8 is null,0,b.f8))*a.f6 f13,sum(a.f11-iif(b.f11 is null,0,b.f11)) f14,
2011-12-29 00:59
快速回复:各位老师,这个sql语句怎么写
数据加载中...
 
   



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

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