2013-02-20 166 views
-4

我有SQL Server 2000问题引用三列到同一列的另一个表,我需要从数据库的报告。我有一个名为Automation的数据库,它包含一组表来处理我们应用程序的票务处理查询。在SQL Server 2000

我需要提取从数据库的报告应包含票号用户信息喜欢谁已经进入,接受,编辑,审查了票。

我需要这些字段从数据库

Ticketnumber 
billnumber 
companyname 
enteredby(username) 
entereddate 
recievedby(username) 
recieveddate 
editedby(Employeename) 
editeddate 
reviewedby(ReviewerName) 
revieweddate 
postedby(Managername) 
posteddate 

我有三个表
1>VPP_VendorBilldetails

BillentryID | ticketnumber | billnumber | VENDORNAME,BILLNUMBER,COSTCENTERNAME,BILLAMOUNT,TICKETDATE,BILLDATE | companyID(not companyname) | billdate | Enteredby(userid)| entereddate | recievedby(userid) | recieveddate | editedby(userid) | editeddate | reviewedby(userid) | revieweddate | postedby(userid) | posteddate 

2>Users

UserID | employeeID | employeename |loginID| Password | usertype | status 

3>VPP_ClientCompanyDetails

companyid | companyname | companyaddress | status 

我写此查询,但我对所有三个类别获得相同的员工姓名:

SELECT CLIENTCOMPANYNAME, TICKETNUMBER,VENDORNAME,BILLNUMBER,COSTCENTERNAME,BILLAMOUNT,TICKETDATE,BILLDATE, 
    RECIEVEDDATE,EMPLOYEENAME AS EXECUTIVENAME, 
     VPP_VENDORBILLDETAILS.MODIFIEDDATE, 
     EMPLOYEENAME AS REVIEWERNAME,EMPLOYEENAME AS POSTEDBY,POSTEDDATE,ERRORCODE, 
     IMPACTCODE,ROOTCAUSE,REVIEWERREMARKS 
     FROM 
    VPP_VENDORBILLDETAILS 

    INNER JOIN 
    VPP_CLIENTCOMPANYDETAILS 
    ON VPP_VENDORBILLDETAILS.BILLENTEREDCOMPANYID = VPP_CLIENTCOMPANYDETAILS.CLIENTCOMPANYID 

    INNER JOIN USERS 
    ON VPP_VENDORBILLDETAILS.MODIFIEDBY = USERS.USERID 

    WHERE CONVERT(VARCHAR(12),CONVERT(DATETIME,POSTEDDATE,103),101) 
     BETWEEN CONVERT(DATETIME,CONVERT(VARCHAR(12),getdate()-7,100),101) 
     AND CONVERT(DATETIME,CONVERT(VARCHAR(12),getdate()-1,100),101) 

     AND VPP_CLIENTCOMPANYDETAILS.STATUS = 1 AND VPP_VENDORBILLDETAILS.STATUS = 1 AND USERS.STATUS = 1 AND ERRORCODE IS NOT NULL AND TALLYID IS NOT NULL 

     ORDER BY CLIENTCOMPANYNAME ASC 

请检查并帮助我在此

请帮我提取报告上述表格。

+1

没有努力或尝试显示。 – 2013-02-20 07:28:07

+1

嗨米奇..这是我第一次登陆并问4个问题..请让我知道我不得不提到? – 2013-02-20 07:36:44

+0

简单:向我们展示您的尝试。 – 2013-02-20 07:37:20

回答

0

试试这个:

SELECT CLIENTCOMPANYNAME, TICKETNUMBER,VENDORNAME,BILLNUMBER,COSTCENTERNAME,BILLAMOUNT,TICKETDATE,BILLDATE, 
    RECIEVEDDATE,U1.EMPLOYEENAME AS EXECUTIVENAME, 
     VPP_VENDORBILLDETAILS.MODIFIEDDATE, 
     U2.EMPLOYEENAME AS REVIEWERNAME,U3.EMPLOYEENAME AS POSTEDBY,POSTEDDATE,ERRORCODE, 
     IMPACTCODE,ROOTCAUSE,REVIEWERREMARKS 
     FROM 
    VPP_VENDORBILLDETAILS 

    INNER JOIN 
    VPP_CLIENTCOMPANYDETAILS 
    ON VPP_VENDORBILLDETAILS.BILLENTEREDCOMPANYID = VPP_CLIENTCOMPANYDETAILS.CLIENTCOMPANYID 

    INNER JOIN USERS U1 
    ON VPP_VENDORBILLDETAILS.recievedby = U1.USERID 

    INNER JOIN USERS U2 
    ON VPP_VENDORBILLDETAILS.MODIFIEDBY = U2.USERID 

    INNER JOIN USERS U3 
    ON VPP_VENDORBILLDETAILS.postedby = U3.USERID 


    WHERE CONVERT(VARCHAR(12),CONVERT(DATETIME,POSTEDDATE,103),101) 
     BETWEEN CONVERT(DATETIME,CONVERT(VARCHAR(12),getdate()-7,100),101) 
     AND CONVERT(DATETIME,CONVERT(VARCHAR(12),getdate()-1,100),101) 

     AND VPP_CLIENTCOMPANYDETAILS.STATUS = 1 AND VPP_VENDORBILLDETAILS.STATUS = 1 AND USERS.STATUS = 1 AND ERRORCODE IS NOT NULL AND TALLYID IS NOT NULL 

     ORDER BY CLIENTCOMPANYNAME ASC 
+0

我明白了..非常感谢你....非常感谢...我从来没有想过做这样的..超级拉维..谢谢..吨我 – 2013-02-21 05:30:09

+0

有一个问题,最近我增加了四个新领域的“VPP_VENDORBILLDETAILS”表,这四个领域将通过审阅他的登录信息来更新和我进行了强制在应用程序中,用户在处理下一步之前输入这些详细信息......发生的情况是只有1或2个字段r更新不是全部,剩余空白。我不知道如何找到这个问题..我会知道当我生成这些细节的报告.. – 2013-02-21 05:43:15

+0

你检查是否所有都传递给数据库?调试,你会找到解决方案。 – 2013-02-21 05:46:05