Ich habe Code, den ich von der Zugriffssprache zu SQL konvertieren möchte. Ich habe das Instrument bereits zu Charindex konvertiert, muss nur das Mid-Stück konvertieren. Der Code nimmt grundsätzlich ein Feld, das eine E-Mail-Adresse enthält, die immer [email protected] formatiert ist und zwei Spalten eins mit dem Vornamen und eins mit dem Nachnamen macht. Hier ist der Code:Konvertieren Sie Zugriff Mitte zu SQL-Teilzeichenfolge
SELECT sap.Description, Sum(main.Hours) AS SumOfHours,
substring(supervisor1email, 1, charindex('.', supervisor1email) - 1) AS SupervisorFirstName,
substring(supervisor1email, charindex('.', supervisor1email) + 1, charindex('@', supervisor1email) - charindex('.', supervisor1email) - 1) AS SupervisorLastName,
(SELECT SUM(sub.hours)
FROM v_MES_TcActivities sub
WHERE sub.costctr='106330'
AND sub.AttCode Not Like 'MEAL'
AND sub.clockin Between dateadd(day, 1-datepart(dw, getdate()), CONVERT(date,getdate())) and dateadd(day, 8-datepart(dw, getdate()), CONVERT(date,getdate()))
AND substring(sub.supervisor1email, 1, charindex('.', sub.supervisor1email) - 1) = substring(main.supervisor1email, 1, charindex('.', main.supervisor1email) - 1)
AND substring(sub.supervisor1email, charindex('.', sub.supervisor1email) + 1, charindex('@', sub.supervisor1email) - charindex('.', sub.supervisor1email) - 1) = substring(main.supervisor1email, charindex('.', main.supervisor1email) + 1, charindex('@', main.supervisor1email) - charindex('.', main.supervisor1email) - 1)
) AS TotalHours
FROM v_MES_TcActivities AS main
LEFT JOIN t_SAP_AttCodes AS sap
ON main.AttCode = sap.Code
WHERE main.AttCode Not Like 'MEAL'
AND main.CostCtr Like '106330'
AND main.ClockIn Between dateadd(day, 1-datepart(dw, getdate()), CONVERT(date,getdate())) and dateadd(day, 8-datepart(dw, getdate()), CONVERT(date,getdate()))
GROUP BY sap.Description, substring(main.supervisor1email, 1, charindex('.', main.supervisor1email) - 1), substring(main.supervisor1email, charindex('.', main.supervisor1email) + 1, charindex('@', main.supervisor1email) - charindex('.', main.supervisor1email) - 1)
ORDER BY substring(main.supervisor1email, charindex('.', main.supervisor1email) + 1, charindex('@', main.supervisor1email) - charindex('.', main.supervisor1email) - 1)
EDIT: Hier ist der gesamte Code
Ich erhalte einen Fehler, der besagt, dass ungültige Parameter an die LINKS- oder SUBSTRING-Funktion übergeben wurden. Irgendeine Idee hat das vielleicht? – Michael
ist dieser SQL Server? Wenn ja, müssen Sie die Teilzeichenfolge überall verwenden (anstelle von LEFT, MID, RIGHT). Ich habe meine Antwort aktualisiert, um dies widerzuspiegeln. – SlimsGhost
Ich bekomme immer noch den gleichen Fehler. Sollte ich diesen "1" Wert erhöhen? – Michael