ich jede eine Abfrage in SQL Server schreibt alle Aufträge anzuzeigen, die in der vergangenen Woche empfangen wurden, die Abfrage der Grundlage eines automatisierten Bericht in Crystal Report wird, Syntax ist wie untenAusgabe mit einer WHERE-Klausel
SELECT TOP (100) PERCENT
DATENAME(yy, dbo.JOB.JOB_TAKEN_DATE) + '-' + DATENAME(wk, DATEADD(wk, - 1, dbo.JOB.JOB_TAKEN_DATE)) AS PERIOD,
dbo.JOB.CUST_ORD_NO AS [ORDER NO],
dbo.JOB.JOB_TAKEN_DATE AS RECEIVED,
dbo.JOB.JOB_COMPLETION_DATE AS COMPLETED,
UPPER(ISNULL(dbo.JOB.PROPERTY_LOCATION, ' ') + ' ' + dbo.JOB.PROPERTY_NAME + ' ' + REPLACE(REPLACE(REPLACE(dbo.JOB.PROPERTY_ADDRESS, CHAR(10), ' '), CHAR(13), ' '), CHAR(9), ' ') + ' ' + dbo.JOB.PROPERTY_POSTCODE) AS ADDRESS,
REPLACE(REPLACE(REPLACE(dbo.JOB.WORKS_TO_BE_CARRIED_OUT, CHAR(10), ' '), CHAR(13), ' '), CHAR(9), ' ') AS [WORKS ORDERED],
dbo.JOB.JOB_TARGET_DATE,
dbo.['TMO properties$'].F2
FROM
dbo.JOB
INNER JOIN
dbo.CUSTOMERPROPERTY ON dbo.JOB.CUSTOMER_PROPERTY_ID = dbo.CUSTOMERPROPERTY.CUSTOMER_PROPERTY_ID
INNER JOIN
dbo.['TMO properties$'] ON dbo.CUSTOMERPROPERTY.EXTERNAL_REFERENCE = dbo.['TMO properties$'].F1
WHERE
DATENAME(yy, dbo.JOB.JOB_TAKEN_DATE) + '-' + DATENAME(wk, DATEADD(wk, - 1, dbo.JOB.JOB_TAKEN_DATE)) = DATENAME(yy, CURRENT_TIMESTAMP) + '-' + DATENAME(wk, DATEADD(wk, - 1, CURRENT_TIMESTAMP))
ORDER BY
RECEIVED
Wenn die Abfrage ausgeführt wird erhalte ich einen Fehler
Wert auf ein ‚Datum‘ -Spalte Zugabe verursachte einen Überlauf
Kann jemand sehen, was ich falsch mache?
bitte einfügen genaue Fehlermeldung und einige Beispieldaten für diese beteiligten Tabellen – TheGameiswar
Warum sind die besten 100%? –
Ich nehme an, dass Sie sehr frühe Daten in Ihrer Tabelle haben? Wenn Sie diese SELECT DATEADD ausführen (WK, -1, '17530101'); dann erhalten Sie den gleichen Fehler, und dies liegt daran, dass SQL Server keine Daten vor einem Abschaltpunkt behandelt. –