2016-12-29 5 views
1

Ich versuche, einige Summen zu ziehen und ein Problem damit zu haben, alle meine Aufzeichnungen zu erkennen. Hier ist mein aktueller Code:Access Query Issue (SQL)

SELECT Contacts.[Date Added], Count(Contacts.[Customer Last Name]) AS [Records Per Day], (Round(45000)-Count([Customer Last Name]))\(Count([Date Added]<=Date())) AS [Days Till Completion], Count(*) AS Expr1 
FROM Contacts 
WHERE (((Contacts.[Date Added])>=Date()-1)) 
GROUP BY Contacts.[Date Added]; 

Derzeit ist es zeigt, wie viele viele Datensätze pro Tag eingegeben wurden (was ich brauche), aber es wird nicht zeigen, wie viele Datensätze sind in der Tabelle insgesamt. Wenn ich die Abfragen getrennt habe, kann ich sie einzeln arbeiten lassen, aber ich kann sie nicht kombinieren. Ich brauche diese Informationen, damit ich einen Bericht erstellen kann, der all diese Daten zeigt, und ich habe versucht, einen Bericht mit den zwei verschiedenen Abfragen zu erstellen, aber es wird auch nicht funktionieren. Jede Hilfe mit diesem würde sehr geschätzt werden!

+1

Sie können nicht alle Datensätze und haben eine Where-Klausel .. eine WHERE-Klausel LIMITIERT Ihre Ergebnisse, so dass Sie nicht "ALLE Datensätze" erhalten (also können Sie nicht zählen, was Sie durch eine WHERE-Klausel weggelassen haben) Sie müssen die Datensätze bedingt zählen (summieren), indem Sie eine Anweisung "case" oder "iif" (ich glaube nicht, dass access case verwendet) anstelle einer where-Klausel verwenden. – xQbert

+0

Sie können versuchen, eine Unterabfrage dafür zu verwenden. –

+0

Ich denke, du solltest noch ein paar ('und') 's hinzufügen. – Hogan

Antwort

0

Sie benötigen eine Art von Unterabfrage. Here are more types.

SELECT Contacts.[Date Added] 
    , Count(Contacts.[Customer Last Name]) AS [Records Per Day] 
    , (Round(45000)-Count([Customer Last Name]))\(Count([Date Added]<=Date())) AS [Days Till Completion] 
    , Count(*) AS Expr1 
    , (Select count(*) from Contacts where ((Contacts.[Date Added])>=Date()-1)) as TotalCount 
    FROM Contacts 
    WHERE (((Contacts.[Date Added])>=Date()-1)) 
    GROUP BY Contacts.[Date Added]; 
+0

Okay, ich werde es versuchen. Ich habe Probleme beim Hinzufügen einer Unterabfrage zuvor. Hält an zu sagen, ich kann nicht zwei Abfragen zu einer ziehen. Aber ich überprüfe gerade deinen Link, um zu sehen, was ich lernen kann. Vielen Dank!! – Deke

+0

Ich war dumm (Urlaub habe mich arbeiten, ohne nachzudenken). Ich habe eine Unterabfrage hinzugefügt und das hat alle meine Probleme behoben :-) Danke für die Hilfe an alle !!! – Deke

0

Sie können Ihre Abfrage basierend auf diesem Beispiel bauen:

WITH GROUPS AS (
SELECT 'a' item ,222 total 
UNION 
SELECT 'b' item ,778 total 
) 
select item, total ,(select sum(total) from GROUPS) as grand_total 
from GROUPS 

in Ihrem Fall „Gruppen“ ist die ursprüngliche Abfrage, die Sie geschrieben, und insgesamt ist Ihr „Datensätze pro Tag“ ein.