| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3731 人关注过本帖
标题:求一句SQL语句解决问题
取消只看楼主 加入收藏
yll148
Rank: 2
等 级:论坛游民
威 望:3
帖 子:268
专家分:15
注 册:2012-7-3
结帖率:87.5%
收藏
已结贴  问题点数:10 回复次数:13 
求一句SQL语句解决问题
A表 客户信息表 有:客户编码,客户名称
B表 发出商品表 有:客户编码,发出金额,日期
C表 开票信息表 有:客户编码,开票金额,日期
D表 回款信息表 有:客户编码,回款金额,日期

求一句生成xxxx年xx月汇总表  客户编码,客户名称,发出金额汇总,开票金额汇总,回款金额汇总  
请各位同仁多多指教。谢谢!
搜索更多相关主题的帖子: 汇总表 同仁 
2016-12-05 18:02
yll148
Rank: 2
等 级:论坛游民
威 望:3
帖 子:268
专家分:15
注 册:2012-7-3
收藏
得分:0 
A表 客户信息表
   客户编码   客户名称
     0001      AA公司
     0002      BB公司
     0003      CC公司

B表 发出商品表
   日期    客户编码   发出金额
2016-1-1    0002     1000.00
2016-1-10   0003      800.00
2016-3-5    0001      700.00
2016-3-10   0001      500.00
2016-3-20   0003     2000.00
... ...
2016-11-10  0001      600.00
2016-11-11  0003      500.00

C表 开票信息表
  日期    客户编码   开票金额
2016-1-10   0002     1000.00
2016-1-13   0003      800.00
2016-3-9    0001      700.00
2016-3-16   0001      500.00
2016-3-22   0003     2000.00
... ...
2016-11-10  0001      600.00
2016-11-11  0003      500.00
D表 回款信息表
   日期    客户编码   回款金额
2016-1-6    0002      900.00
2016-1-10   0003      400.00
2016-3-8    0001      600.00
2016-3-15   0001      500.00
2016-3-27   0003     1000.00
... ...
2016-11-15  0001      700.00
2016-11-20  0003      600.00

我想要一句SQL语句查出到11月末止,当月发出、开票、回款数和本年累计发出、开票、回款数
即生成 客户编码,客户名称,本月发出,本月开票、本月回款,累计发出,累计开票,累计回款 表
         0001      AA公司
         0002      BB公司
         0003      CC公司

请各位同仁指教,谢谢!
2016-12-06 07:00
yll148
Rank: 2
等 级:论坛游民
威 望:3
帖 子:268
专家分:15
注 册:2012-7-3
收藏
得分:0 
dbf.rar (21.17 KB)
这是DBF数据,谢谢指教!
2016-12-06 09:00
yll148
Rank: 2
等 级:论坛游民
威 望:3
帖 子:268
专家分:15
注 册:2012-7-3
收藏
得分:0 
谢谢7楼的朋友指点,我也是做了分块汇总,但是我觉得应该用一句也可以完成,但是我不写,请朋友们指教!
2016-12-06 11:35
yll148
Rank: 2
等 级:论坛游民
威 望:3
帖 子:268
专家分:15
注 册:2012-7-3
收藏
得分:0 
12楼的朋友您好,我是使用您说的模式做的,但我总觉得可以使用一句SELECT语句就能完成,就是不会写。谢谢指教!
2016-12-06 19:11
yll148
Rank: 2
等 级:论坛游民
威 望:3
帖 子:268
专家分:15
注 册:2012-7-3
收藏
得分:0 
15楼的朋友您好,我使用您的句子,没有成功啊?请您再看看,谢谢!
2016-12-07 12:19
yll148
Rank: 2
等 级:论坛游民
威 望:3
帖 子:268
专家分:15
注 册:2012-7-3
收藏
得分:0 
就像21楼的朋友说的,很多“*”没有数据。,太累了不研究了,谢谢大家的指教!
2016-12-07 20:54
yll148
Rank: 2
等 级:论坛游民
威 望:3
帖 子:268
专家分:15
注 册:2012-7-3
收藏
得分:0 
谢谢朋友们,在VFP的DBF表状态可行,如果这些表都是在ACCESS中的表,这种方法还可以吗?
2016-12-08 19:47
yll148
Rank: 2
等 级:论坛游民
威 望:3
帖 子:268
专家分:15
注 册:2012-7-3
收藏
得分:0 
sqlml="SELECT a1.编码,a1.名称,"
sqlml=+sqlml+"IIF(ISNULL(b1.本月发出),0,b1.本月发出) as 本月发出,"
sqlml=+sqlml+"IIF(ISNULL(c1.本月开票),0,c1.本月开票) as 本月开票,"
sqlml=+sqlml+"IIF(ISNULL(d1.本月回款),0,d1.本月回款) as 本月回款,"
sqlml=+sqlml+"IIF(ISNULL(b2.累计发出),0,b2.累计发出) as 累计发出,"
sqlml=+sqlml+"IIF(ISNULL(c2.累计开票),0,c2.累计开票) as 累计开票,"
sqlml=+sqlml+"IIF(ISNULL(d2.累计回款),0,d2.累计回款) as 累计回款 from 客户编码 a1 "
sqlml=+sqlml+"left join (select khbm,sum(金额) as 本月发出 from 发出商品 where 日期 BETWEEN #&ycrq.# and #&jsrq.# group by khbm)b1 on a1.编码=b1.khbm "
sqlml=+sqlml+"left join (select khbm,sum(金额) as 本月开票 from 开票信息 where 开票日期 BETWEEN #&ycrq.# and #&jsrq.# group by khbm)c1 on a1.编码=c1.khbm "
sqlml=+sqlml+"left join (select khbm,sum(回款金额) as 本月回款 from 回款信息 where 日期 BETWEEN #&ycrq.# and #&jsrq.#  group by khbm)d1 on a1.编码=d1.khbm "
sqlml=+sqlml+"left join (select khbm,sum(金额) as 累计发出 from 发出商品 where 日期 BETWEEN #&ncrq.# and #&jsrq.#  group by khbm)b2 on a1.编码=b2.khbm "
sqlml=+sqlml+"left join (select khbm,sum(金额) as 累计开票 from 开票信息 where 开票日期 BETWEEN #&ncrq.# and #&jsrq.#  group by khbm)c2 on a1.编码=c2.khbm "
sqlml=+sqlml+"left join (select khbm,sum(回款金额) as 累计回款 from 回款信息 where 日期 BETWEEN #&ncrq.# and #&jsrq.#  group by khbm)d2 on a1.编码=d2.khbm "
sqlml=+sqlml+"order by a1.编码"

IF SQLEXEC(mycon1,sqlml,'lsk')<0
   errmsg()
   RETURN
ENDIF
BROWSE
USE IN lsk
这样提示错误,不知道怎么办才行??
2016-12-09 12:39
yll148
Rank: 2
等 级:论坛游民
威 望:3
帖 子:268
专家分:15
注 册:2012-7-3
收藏
得分:0 
ncrq="2016-1-1"
jsrq="2016-11-30"
ycrq="2016-11-1"

sqlml="SELECT a1.编码,a1.名称,"
sqlml=+sqlml+"IIF(ISNULL(b1.本月发出),0,b1.本月发出) as 本月发出,"
sqlml=+sqlml+"IIF(ISNULL(c1.本月开票),0,c1.本月开票) as 本月开票,"
sqlml=+sqlml+"IIF(ISNULL(d1.本月回款),0,d1.本月回款) as 本月回款,"
sqlml=+sqlml+"IIF(ISNULL(b2.累计发出),0,b2.累计发出) as 累计发出,"
sqlml=+sqlml+"IIF(ISNULL(c2.累计开票),0,c2.累计开票) as 累计开票,"
sqlml=+sqlml+"IIF(ISNULL(d2.累计回款),0,d2.累计回款) as 累计回款 from 客户编码 a1 "
sqlml=+sqlml+"left join (select khbm,sum(金额) as 本月发出 from 发出商品 where 日期 BETWEEN #&ycrq.# and #&jsrq.# group by khbm)b1 on a1.编码=b1.khbm "
sqlml=+sqlml+"left join (select khbm,sum(金额) as 本月开票 from 开票信息 where 开票日期 BETWEEN #&ycrq.# and #&jsrq.# group by khbm)c1 on a1.编码=c1.khbm "
sqlml=+sqlml+"left join (select khbm,sum(回款金额) as 本月回款 from 回款信息 where 日期 BETWEEN #&ycrq.# and #&jsrq.#  group by khbm)d1 on a1.编码=d1.khbm "
sqlml=+sqlml+"left join (select khbm,sum(金额) as 累计发出 from 发出商品 where 日期 BETWEEN #&ncrq.# and #&jsrq.#  group by khbm)b2 on a1.编码=b2.khbm "
sqlml=+sqlml+"left join (select khbm,sum(金额) as 累计开票 from 开票信息 where 开票日期 BETWEEN #&ncrq.# and #&jsrq.#  group by khbm)c2 on a1.编码=c2.khbm "
sqlml=+sqlml+"left join (select khbm,sum(回款金额) as 累计回款 from 回款信息 where 日期 BETWEEN #&ncrq.# and #&jsrq.#  group by khbm)d2 on a1.编码=d2.khbm "
sqlml=+sqlml+"order by a1.编码"

IF SQLEXEC(mycon1,sqlml,'lsk')<0
   errmsg()
   RETURN
ENDIF
BROWSE
USE IN lsk
2016-12-09 12:40
快速回复:求一句SQL语句解决问题
数据加载中...
 
   



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

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