2017-01-05 4 views
-3

Den Versuch, eine Spalte zu erstellen, die mir die WeekOfYear erzählen() sowie die Termine:erstellen eine Spalte SQL verwenden, den ersten Tag der Woche und am letzten Tag der Woche zeigt

Week Date      org cost 
-------------------------------------------- 
50 "2016/12/12-2016/12/18" 1  400 
51 "2016/12/19-2016/12/25" 1  400 
52 "2016/12/26"    1  400 

Also das erzählt Ich, dass Woche 52 nur Daten vom 26. Dezember und nicht für die ganze Woche enthält.

hier ist das, was meine Frage wie folgt aussieht:

SELECT 
    weekofyear(date) as week_number, 
    exchange, 
    country, 
    channel, 
    sum (media_cost) as mc 
FROM 
    imps 
WHERE 
    date BETWEEN '2016-12-26' AND '2017-01-08' 
GROUP BY 
    weekofyear(date) as week_number, 
    exchange, 
    country, 
    channel; 

Ich habe bei How do you get the “week start date” and “week end date” from week number in SQL Server? sah aber das wird das Thema zu sehen, was Tage es beinhaltet nicht lösen. Würde die Verwendung von Bins dafür vielleicht funktionieren? Was sind deine Vorschläge?

+3

Es ist sehr schwer, eine Frage mit so wenig Informationen zu verstehen. Bitte geben Sie einige Beispieldaten und das Ergebnis an, das Sie für dieses Beispiel erhalten möchten. – Mureinik

+1

Siehe http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-very-simple-sql- Abfrage – Strawberry

+0

Ich weiß wirklich nicht, wonach Sie fragen, aber die Funktion strtotime in PHP kann eine Wochennummer in ein Datum wie folgt umwandeln: 'date (" Ymd ", strtotime (" 2017W01 "));'. Das wird Ihnen das erste Datum in der ersten Woche von 2017 geben. – CptMisery

Antwort

0

In Ihrer Abfrage wird WHERE nicht funktionieren, da die Zeichenfolge "2016/12/12-2016/12/18" nie zwischen zwei Daten sein wird. Sie müssten zwei Datumsspalten erstellen, z. B. week_begin und week_end. Dann könnte Ihr sein:

WHERE week_begin BETWEEN '2016-12-26' AND '2017-01-08' 
    OR week_end BETWEEN '2016-12-26' AND '2017-01-08' 
Verwandte Themen