0

I'm new to Access, and have not worked in VB in a while. I'm having a problem working within our database, can someone shed a little light here? Query and error:

SELECT piname, 
       SUM(cat1)    AS CatI, 
       SUM(cat2)    AS CatII, 
       SUM(cat3)    AS CatIII, 
       SUM(cat4)    AS CatIV, 
       0            AS CatV, 
       0            AS CatVI, 
       SUM(cat7)    AS CatVII, 
       SUM(cat8)    AS CatVIII, 
       SUM(cat9)    AS CatIX, 
       SUM(dbltime) AS CatIXTime, 
       0            AS CatX, 
       0            AS CatXI, 
       SUM(cat12)   AS CatXII 
FROM   [SELECT Trim(users.pilastname & ' ' & users.pifirstname) AS PIName, 
               SUM(Abs(log.chargef))                            AS Cat1, 
               SUM(Abs(log.chargeg))                            AS cat2, 
               SUM(Abs(log.chargee))                            AS cat3, 
               SUM(Abs(log.charget))                            AS cat4, 
               0                                                AS Cat7, 
               0                                                AS Cat8, 
               0                                                AS Cat9, 
               0                                                AS dblTime, 
               SUM(log.hours)                                   AS Cat12 
        FROM   log, 
               users, 
               raform 
        WHERE  LEFT(log.sampleid, 2) = users.pi 
               AND Ucase(users.location) = 'S' 
               AND raform.sampleid = log.sampleid 
               AND log.finisheddate BETWEEN #5/1/2013# AND #6/1/2013# 
               AND Ucase(machine) = 'OUT' 
        GROUP  BY Trim(users.pilastname & ' ' & users.pifirstname) 
        UNION 
        SELECT Trim(users.pilastname & ' ' & users.pifirstname), 
               0, 
               0, 
               0, 
               0, 
               Count(plab.billing), 
               0, 
               0, 
               0, 
               0 
        FROM   plab, 
               pform, 
               users, 
               userinfo 
        WHERE  userinfo.pi = users.pi 
               AND Ucase(users.location) = 'S' 
               AND plab.sampleid = pform.sampleid 
               AND plab.email = userinfo.email 
               AND plab.finisheddate BETWEEN #5/1/2013# AND #6/1/2013# 
               AND plab.finished = true 
               AND plab.billing = 1 
        GROUP  BY Trim(users.pilastname & ' ' & users.pifirstname) 
        UNION 
        SELECT Trim(users.pilastname & ' ' & users.pifirstname), 
               0, 
               0, 
               0, 
               0, 
               0, 
               Count(plab.billing), 
               0, 
               0, 
               0 
        FROM   plab, 
               pform, 
               users, 
               userinfo 
        WHERE  userinfo.pi = users.pi 
               AND Ucase(users.location) = 'S' 
               AND plab.sampleid = pform.sampleid 
               AND plab.email = userinfo.email 
               AND plab.finisheddate BETWEEN #5/1/2013# AND #6/1/2013# 
               AND plab.finished = true 
               AND plab.billing = 2 
        GROUP  BY Trim(users.pilastname & ' ' & users.pifirstname) 
        UNION 
        SELECT Trim(users.pilastname & ' ' & users.pifirstname), 
               0, 
               0, 
               0, 
               0, 
               0, 
               0, 
               0, 
               Count(plab.billing), 
               SUM(t_desa + t_zipt + t_dige + t_gel1 + t_gel2 + t_mtof 
                   + t_ftms + t_nano + t_hplc + t_data + t_anal + t_repo 
                   + t_othe) 
        FROM   plab, 
               pform, 
               users, 
               userinfo 
        WHERE  userinfo.pi = users.pi 
               AND Ucase(users.location) = 'S' 
               AND plab.sampleid = pform.sampleid 
               AND plab.email = userinfo.email 
               AND plab.finisheddate BETWEEN #5/1/2013# AND #6/1/2013# 
               AND plab.finished = true 
               AND plab.billing = 3 
        GROUP  BY Trim(users.pilastname & ' ' & users.pifirstname)]. AS grausig 
GROUP  BY piname 

SoftArtisans.ExcelTemplate.1 error '80020009'

Token doesn't bind to anything, or invalid. A data source was not found for data marker: Users

4

1 回答 1

4

你有几个问题我马上就看到了。

您正在使用子查询。在做的时候,它需要是一个完整的查询。您的子查询缺少 FROM 语句。

此外,子查询应该用括号 () 括起来。

这个网站非常擅长格式化 SQL 语句,这使得查看和编辑更容易。

于 2013-05-24T02:50:54.640 回答