2016-08-23 5 views
1

Ich habe eine Abfrage, die eine Liste der Transaktionen von item, date, time, Qty bietet.Schreiben einer SQL-Abfrage mit Min Max

SELECT item_no, trx_dt, trx_tm, quantity 
FROM dbo.Item_Trx_Table 
WHERE item='Item_1' AND [doc_type]<>'w' AND transDate='2016-08-22 00:00:00.000' 

Ich brauche Hilfe, herauszufinden, wie die Qty auf Min(trx_tm) und Max(trx_tm) für jeden Item und Date zu bekommen.

Jede Anleitung wäre willkommen.

+0

Ihre Frage macht keinen Sinn, wie geschrieben; Sie haben nicht annähernd genug Informationen zur Verfügung gestellt, um Ihr Schema zu verstehen oder was zum Teufel Sie versuchen zu tun. – ChrisInEdmonton

+1

Welche Version von SQL - SQL Server, PostgreSQL, MySQL usw.? Post Sample DDL, damit wir ein vollständiges Bild bekommen können, bc mit den aktuellen Informationen können wir nicht helfen (es wäre alles Vermutungen) – user2676140

Antwort

0

Es ist ein bisschen unklar, was Sie wünschen, aber ich denke, dass Sie zum Beispiel die MAX (trx_tm) für jedes Element erhalten möchten, und die Menge finden? Wenn ja, verwenden Sie GROUP BY Item und wählen Sie MAX oder MIN von Item oder Date. Dann, um die Menge auch einen inneren Beitritt zu tun. Ich würde vier separate Abfragen (MAX-Artikel, Min-Artikel, MAX-Datum, MIN-Datum) machen.

Dies ist die erste: die MAX (trx_tm) für jeden Punkt zu bekommen, und finden Sie die Menge:

SELECT grp.Item, grp.max_trx_tm, tbl.Qty 
(
    SELECT Item, MAX(trx_tm) AS max_trx_tm 
    FROM dbo.Item_Trx_Table 
    GROUP BY Item 
) AS grp 
INNER JOIN dbo.Item_Trx_Table tbl ON (tbl.Item = grp.Item AND tbl.trx_tm = grp.max_trx_tm) 
WHERE tbl.Item='Item_1' AND tbl.doc_type <> 'w' AND tbl.transDate='2016-08-22 00:00:00.000'