Office中国论坛/Access中国论坛

标题: 急急急,寻找高手帮助。。。。。 [打印本页]

作者: 偶然是你    时间: 2013-5-23 11:00
标题: 急急急,寻找高手帮助。。。。。
请高手写二个查询,1.在DD。MDB中如何分月查找出客户发票分月汇总SE>申报分月汇总SE的记录.2.如何查找客户发票连续3个月SE大于300元的客户记录.
作者: 偶然是你    时间: 2013-5-24 08:15
{:soso_e100:}UP,寻找帮助。。。。。
作者: aslxt    时间: 2013-5-24 12:33
第一个问题:
SELECT A.NSRSBH, A.月度
FROM (SELECT 发票.NSRSBH, Format([KPRQ_Q],"yyyymm") AS 月度, Sum(发票.SE) AS SE之总计
FROM 发票
GROUP BY 发票.NSRSBH, Format([KPRQ_Q],"yyyymm"))  AS A INNER JOIN (SELECT 申报.NSRSBH, Format([SSSQ_Q],"yyyymm") AS 月度, Sum(申报.SE) AS SE之总计
FROM 申报
GROUP BY 申报.NSRSBH, Format([SSSQ_Q],"yyyymm"))  AS B ON (A.NSRSBH = B.NSRSBH) AND (A.月度 = B.月度)
WHERE ((([A].[SE之总计]-[B].[SE之总计])>0))
作者: aslxt    时间: 2013-5-24 14:30
[attach]51839[/attach]
作者: 偶然是你    时间: 2013-5-24 16:00
谢谢,但查找不全面,发票当月有发生额但是当月申报为空值不能查找出来,如何查找出客户发票分月汇总SE>申报分月汇总SE的记录或客户发票分月汇总SE但是当月申报为空值的记录。如44120219631111033记录
作者: cgsilicone    时间: 2013-5-24 18:05
楼上的问题2的结果有问题,且使用代码。
见附件中查询结果
作者: aslxt    时间: 2013-5-24 18:27
本帖最后由 aslxt 于 2013-5-24 18:31 编辑
cgsilicone 发表于 2013-5-24 18:05
楼上的问题2的结果有问题,且使用代码。
见附件中查询结果

【问题在哪里请指出来,便于改正和探讨】

没有看出你的附件和我的附件有什么区别。
代码本身有点问题
Private Sub Command5_Click()
   Me.Child2.SourceObject = ""  '增加这一句,解决
  Command0_Click
  Me.Child2.SourceObject = "查询.查询5"
  Me.Label3.Caption = Command5.Caption
End Sub
使用代码不是罪过。我相信查询也可以解决,但是那么多记录,要用很多聚合函数,恐怕一般的电脑承受不起。
作者: 偶然是你    时间: 2013-5-27 09:15
aslxt 发表于 2013-5-24 18:27
【问题在哪里请指出来,便于改正和探讨】

没有看出你的附件和我的附件有什么区别。

谢谢,aslxt 的的查询只能查当月发票开具当月有申报的业户查询,如果当月开发票但当月没申报即为空值业户就查不到,所以查询不太全面。如:44120219631111033记录
作者: 偶然是你    时间: 2013-5-27 14:38
aslxt 发表于 2013-5-24 18:27
【问题在哪里请指出来,便于改正和探讨】

没有看出你的附件和我的附件有什么区别。

谢谢,但查询不全面,问题1中你只查询当月开发票且当月申报的记录,但当月开发票但当月没有申报的记录没有查出来.....
作者: cgsilicone    时间: 2013-5-27 17:10
aslxt 发表于 2013-5-24 18:27
【问题在哪里请指出来,便于改正和探讨】

没有看出你的附件和我的附件有什么区别。

别介意,说话直。
楼主要求写二个查询,而你不是用查询完成的,所以评价了一句“且使用代码”。
“没有看出你的附件和我的附件有什么区别”,就请你有时间再看看,顺便比较以下问题2的结果,你的方法似乎会漏掉一些符合条件的结果。
你确定比较过两种方法的快慢,你的代码需要优化,比查询慢多了。
有代码和无代码得出正确结论就一样好,发帖不过是给楼主多提供一种思路而已。
作者: aslxt    时间: 2013-5-30 10:44
偶然是你 发表于 2013-5-24 16:00
谢谢,但查找不全面,发票当月有发生额但是当月申报为空值不能查找出来,如何查找出客户发票分月汇总SE>申 ...

修改查询3的sql语法为:
SELECT A.NSRSBH, A.月度, [A].[SE之总计]-[B].[SE之总计] AS 发票大于申报
FROM (SELECT 发票.NSRSBH, Format([KPRQ_Q],"yyyymm") AS 月度, Sum(发票.SE) AS SE之总计 FROM 发票 GROUP BY 发票.NSRSBH, Format([KPRQ_Q],"yyyymm"))  AS A LEFT JOIN (SELECT 申报.NSRSBH, Format([SSSQ_Q],"yyyymm") AS 月度, Sum(申报.SE) AS SE之总计 FROM 申报 GROUP BY 申报.NSRSBH, Format([SSSQ_Q],"yyyymm"))  AS B ON (A.NSRSBH = B.NSRSBH) AND (A.月度 = B.月度)
WHERE ((([A].[SE之总计]-[B].[SE之总计])>0))
作者: aslxt    时间: 2013-5-30 10:47
偶然是你 发表于 2013-5-27 09:15
谢谢,aslxt 的的查询只能查当月发票开具当月有申报的业户查询,如果当月开发票但当月没申报即为空值业户 ...

你的表中没有44120219631111033,如何查询出来?
作者: aslxt    时间: 2013-5-30 11:04
问题1(修改了:没有申报的也显示):
SELECT A.NSRSBH, A.月度, [A].[SE之总计]-nz([B].[SE之总计],0) AS 发票大于申报
FROM (SELECT 发票.NSRSBH, Format([KPRQ_Q],"yyyymm") AS 月度, Sum(发票.SE) AS SE之总计 FROM 发票 GROUP BY 发票.NSRSBH, Format([KPRQ_Q],"yyyymm"))  AS A LEFT JOIN (SELECT 申报.NSRSBH, Format([SSSQ_Q],"yyyymm") AS 月度, Sum(申报.SE) AS SE之总计 FROM 申报 GROUP BY 申报.NSRSBH, Format([SSSQ_Q],"yyyymm"))  AS B ON (A.月度 = B.月度) AND (A.NSRSBH = B.NSRSBH);

作者: aslxt    时间: 2013-5-30 13:34
修改[attach]51857[/attach]




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3