2016-08-04 42 views
0

Ich habe einen Bericht. Zur Zeit gruppiere ich mich nach FG, sortiere dann nach Job Date DESC und sortiere schließlich nach Line (nicht abgebildet) ASCEND. Wenn Sie jedoch das Bild betrachten, werden Sie feststellen, dass die erste Gruppierung Job Date7/25/2016 und 7/18/2016 hat. Ich denke, es würde besser aussehen, wenn ich die Gruppierungen mit 8/1/2016 am Anfang des Berichts irgendwie bekommen würde. Wie kann ich das machen?MS Access: Wie kann ich die Gruppierungen mit dem größten Datum oben platzieren?

1 - medGxLD.png

So das Endziel zu vergegenwärtigen, sich vorstellen, dass Gruppierungen 2 und 3 am oberen Rand des Berichts sind, gefolgt von 1 Gruppierung und schließlich Gruppierung 4.

Update: Added SQL von der Abfrage, die den Bericht einspeist.

SELECT 

    dbo_jobmatl.item, 
    dbo_jobmatl.description, 
    dbo_job.job_date, 
    dbo_job.item AS FGNumber, 
    dbo_job.job, 
    dbo_job.suffix, 
    [qty_complete]*[matl_qty] AS qty_req, 
    dbo_jobmatl.qty_issued, 
    [qty_issued]-[qty_req] AS Variance, 
    IIf([qty_req]=0,0,[variance]/[qty_req]) AS Overage, 
    dbo_jobmatl.scrap_fact, 
    dbo_job.whse, 
    dbo_job.Uf_Production_Line, 
    dbo_job.stat, 
    Switch([Uf_Job_Verified]=1,"Yes",[Uf_Job_Verified]=0,"No") AS verified 

FROM 

    dbo_jobmatl 
    INNER JOIN dbo_job ON (dbo_jobmatl.job = dbo_job.job) AND (dbo_jobmatl.suffix = dbo_job.suffix) 

WHERE 

     (((dbo_jobmatl.item)=[Forms]![MainForm]![Text0]) 
    AND ((dbo_job.job_date) Between [Forms]![MainForm]![Text2] And [Forms]![MainForm]![Text4])) 

ORDER BY 

    dbo_job.job_date DESC, 
    dbo_job.item DESC; 

Antwort

0

wenn die erste Abfrage (your_query) fg hat, job_date

eine zweite Abfrage erstellen auf der Grundlage der ersten

select job_date , fg 
from your_query 
order by 
job_date desc, fg 

Verwendung dieser Abfrage als Quelle für den Bericht

Sie können in Ihrem Bericht die Zeilennummer der Reihe nach zuweisen

Bearbeiten: Wenn ich die Abfrage überprüfen, scheint es, dass Sie Gruppierung auf FG innerhalb des Berichts machen, so dass es nach fg sortiert ist.

Um die Gruppierungen mit 8/1/2016 am Anfang des Berichts zu erhalten, können Sie RANK für jede Gruppe berechnen und innerhalb des Berichts nach RANK gruppieren.

Add berechnet Ausdruck in der Abfrage wie:

rank: (SELECT COUNT(T1.fg) 
    FROM 
    dbo_job AS T1 
     WHERE T1.fg < table3.fg)+1 

Das Ergebnis dieser Abfrage für Probendaten:

fg   job_date rank 
12160340 7/25/2016 1 
12160340 7/18/2016 1 
12195704 1/8/2016 3 
12195704 7/25/2016 3 
12280435 1/8/2016 5 

wie Sie sehen, den höchsten Rang 5, für fg = 12.280.435 mit Datum 1/8/20016 die nächste ist Rang 3

+0

Warum brauche ich eine zweite Abfrage? Kann ich die Sortierung nicht einfach in der 1. Abfrage implementieren? – whatwhatwhat

+0

Auch das funktioniert nicht. – whatwhatwhat

+0

Können Sie die SQL der ersten Abfrage schreiben, die Sie im Bericht verwenden. –