2017-01-25 5 views
0
SELECT 
    USERINFO.Name, USERINFO.SSN, USERINFO.Badgenumber, 
    FORMAT((Min(CHECKINOUT.CHECKTIME)),"dd-mmm-yyyy hh:mm am/pm") AS TIMEINAM, 
    FORMAT((Max(CHECKINOUT.CHECKTIME)),"dd-mmm-yyyy hh:mm am/pm") AS TIMEOUTAM 
FROM 
    CHECKINOUT 
INNER JOIN 
    USERINFO ON CHECKINOUT.USERID = USERINFO.USERID 
WHERE 
    (CHECKINOUT.CHECKTIME >= DATEVALUE(PERIOD_START) AND 
    CHECKINOUT.CHECKTIME < DATEADD("d", 1, PERIOD_END) AND 
    FORMAT(CHECKINOUT.CHECKTIME, "AMPM") = "AM") AND 
    USERINFO.Name = Insert_Name 
GROUP BY 
    CHECKINOUT.USERID, USERINFO.Name, USERINFO.SSN, 
    DateValue(CHECKINOUT.CHECKTIME), USERINFO.Badgenumber 
HAVING 
    (((USERINFO.Badgenumber) < "8000")) 
ORDER BY 
    USERINFO.Name, Min(CHECKINOUT.CHECKTIME); 

Abfrage zeigt dies die Ausgabe von timein und Timeout -AMWie kann ich diese 2 Abfragen kombinieren?

SELECT 
    USERINFO.Name, 
    FORMAT((Min(CHECKINOUT.CHECKTIME)),"dd-mmm-yyyy hh:mm am/pm") AS TIMEINPM, 
    FORMAT((Max(CHECKINOUT.CHECKTIME)),"dd-mmm-yyyy hh:mm am/pm") AS TIMEOUTPM 
FROM 
    CHECKINOUT 
INNER JOIN 
    USERINFO ON CHECKINOUT.USERID = USERINFO.USERID 
WHERE 
    (CHECKINOUT.CHECKTIME >= DATEVALUE(PERIOD_START) AND 
    CHECKINOUT.CHECKTIME < DATEADD("d",1,PERIOD_END) AND 
    FORMAT(CHECKINOUT.CHECKTIME, "AMPM") = "PM") AND 
    USERINFO.Name = Insert_Name 
GROUP BY 
    CHECKINOUT.USERID, USERINFO.Name, USERINFO.SSN, 
    DateValue(CHECKINOUT.CHECKTIME), USERINFO.Badgenumber 
HAVING 
    (((USERINFO.Badgenumber) < "8000")) 
ORDER BY 
    USERINFO.Name, Min(CHECKINOUT.CHECKTIME); 

Abfrage 2 - timein und Timeout von PM.

Ich muss die Ausgabe dieser beiden Abfragen zusammen zeigen. USERINFO.Name und DATE Mit

Antwort

0

Es scheint, wie Sie brauchen nur zu einer Gruppe von der Zeit:

SELECT 
    USERINFO.Name, 
    USERINFO.SSN, 
    USERINFO.Badgenumber, 
    FORMAT(CHECKINOUT.CHECKTIME, "AMPM") AS [AM/PM], 
    FORMAT((Min(CHECKINOUT.CHECKTIME)),"dd-mmm-yyyy hh:mm am/pm") AS TIMEIN, 
    FORMAT((Max(CHECKINOUT.CHECKTIME)),"dd-mmm-yyyy hh:mm am/pm") AS TIMEOUT 
FROM 
    CHECKINOUT 
INNER JOIN 
    USERINFO ON CHECKINOUT.USERID = USERINFO.USERID 
WHERE 
    (CHECKINOUT.CHECKTIME >= DATEVALUE(PERIOD_START) AND 
    CHECKINOUT.CHECKTIME < DATEADD("d", 1, PERIOD_END) AND 
    USERINFO.Name = Insert_Name 
GROUP BY 
    CHECKINOUT.USERID, 
    USERINFO.Name, 
    USERINFO.SSN, 
    DateValue(CHECKINOUT.CHECKTIME), 
    FORMAT(CHECKINOUT.CHECKTIME, "AMPM"), 
    USERINFO.Badgenumber 
HAVING 
    (((USERINFO.Badgenumber) < "8000")) 
ORDER BY 
    USERINFO.Name, 
    FORMAT(CHECKINOUT.CHECKTIME, "AMPM"), 
    Min(CHECKINOUT.CHECKTIME); 
+0

dank Sir zu reagieren, aber ... Ist es möglich, dass die Ausgabe in anderer Spalte ist? Eine weitere Spalte für AM und eine weitere Spalte für PM. –

+0

Sie können den _crosstab Query Wizard_ mit der obigen Abfrage als Quelle verwenden. – Gustav

Verwandte Themen