2009-07-04 10 views
0

Ich möchte wissen, wie Aufträge an einem bestimmten Tag angezeigt werden.So zeigen Sie die Gesamtzahl der Aufträge an einem bestimmten Tag in MySQL an

Zum Beispiel:

Ich möchte Aufträge heute platziert anzuzeigen.

Meine MySQL-Datenbank enthält die folgenden Tabellen:

1) Aufträge
2) orders_statuses

Unter Bestellungen habe ich die folgenden Felder:
1) orders_id
2) orders_placed_date

Unter orders_statuses, habe ich die folgenden Felder:
1) status_id
2) status_name

Jedes Mal, wenn ein neuer Auftrag erteilt wird, wird es den Standard status_id = 3 (dh status_name = Auftrag ist Pending)

Wenn also heute drei Aufträge erteilt wurden, die alle von denen haben die gleiche status_id, die 3 ist. (Bestellung ist ausstehend)

Nun, welche Abfrage sollte ich verwenden, um Bestellungen heute, und diese Woche und diesen Monat zu berechnen? Hier

ist die Abfrage, wo ich alle Aufträge in den Warenkorb gelegt wählen:

SELECT order_id, order_placed_date FROM orders 

Das Ergebnis der obigen Abfrage:

Bestell-ID ---- Bestelldatum Platziert
1 --- 12/30/2008 12:06:24 AM
2 --- 2/3/2009 1:57:17 AM
3 --- 2/3/2009 1:58:27 AM
4 --- 5/3/2009 1:58:48 AM
5 --- 6/3/2009 2:00:31 AM
6 --- 7/3/2009 2:01:47
7 --- 7/3/2009 2:02:31 AM
9 --- 2009.07.04 14.21.18
10 --- 2009.07.04 14.21.36
11 --- 2009.07.04 02.22: 18 Uhr
12 --- 2009.07.04 02.23.29
13 --- 2009.07.04 02.24.24

Was ich möchte, ist die Gesamtzahl zu erhalten von heute aufgegebenen Bestellungen.

Da das heutige Datum der 4. Juli 2009 ist, können Sie aus dem obigen Ergebnis sehen, dass am 4. Juli 5 Bestellungen eingegangen sind.

Welche Abfrage sollte ich verwenden, um die Gesamtzahl der Aufträge an einem bestimmten Tag zu erhalten, im heutigen Fall 5.

UPDATE: Gelöst

ich verwendet, um sowohl Adams und colithium querys die Antwort zu erhalten:

Hier ist, was ich verwendet:


SELECT COUNT(order_placed_date) 
FROM  va_orders 
WHERE DATE(order_placed_date) = curdate(); 

Es funktionierte groß :)

Antwort

2

Angenommen, Sie haben einen Fremdschlüssel in ORDERS_STATUSESORDERS_ID genannt:

select o.orders_id 
     , o.orders_placed_date 
from orders o 
     inner join orders_statuses os 
     os.orders_id = o.orders_id 
    and 
     os.status_id = 3 
where date(o.orders_placed_date) = curdate() 
+0

order_statuses hat keinen Foreign-Schlüssel, der mit orders_id in der Auftragstabelle verknüpft ist. –

1

Um die Anzahl der Aufträge an einem bestimmten Tag zu erhalten:

SELECT COUNT(*) FROM orders WHERE order_placed_date = @DayYouWant 

Um die Aufträge von heute/diese Woche zu erhalten/Monat:

SELECT order_id, order_placed_date FROM orders WHERE order_placed_date BETWEEN @StartDate AND @EndDate 

Wenn Sie nur Aufträge mit dem Status wollen 3 müssen Sie JOIN mit der Statustabelle verbinden und diese Kriterien zur WHERE-Klausel hinzufügen.

+0

Danke für die COUNT-Abfrage. –

Verwandte Themen