Ich schreibe eine gespeicherte Prozedur, die ich ein Jahr als Parameter in diesem übergeben. Ich habe saledatestr
als varchar
Spalte. Ich mag erhalten wählen, in den vier ersten Ziffern saledatestr
hier meine Parameter gleich ist mein Code:Falsche Syntax in der Nähe von etwas
if exists (select * from dbo.sysobjects
where id = object_id(N'[dbo].[spSaleCustomerYear]')
and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[spSaleCustomerYear]
GO
create procedure spSaleCustomerYear
(@year varchar)
with Encryption
as
select
c.CustomerCode,
PLE.PLEName,
s.SaleNo,
s.FinalPrice,
s.SaleDateStr
from
SMS.tblsales s
left join
SMS.tblCustomers c on c.CustomerID = s.CustomerRef
left join
GNR.tblPrincipalLegalEntities PLE on PLE.PrincipalLegalEntityID = c.PrincipalLegalEntityRef
where
s.CustomerRef not in (select CustomerRef
from SMS.tblSales s1
--left join dbo.tblFiscalYear FY on FY.FiscalYearID = s1.FiscalYearID
where (LEFT(s1.SaleDateStr, 4) = @year)
and SaleDocType = 4)
Der Fehler in dieser Zeile ist:
(LEFT(s1.SaleDateStr, 4) = @year)
Bitte helfen Sie mir Jungen.
Vielen Dank im Voraus.
Welche dbms verwenden Sie? Bitte fügen Sie das Tag dafür hinzu – Jens
fügen Sie bitte die vollständige Fehlermeldung – Jens
@Jens Msg 102, Ebene 15, Status 1, Zeile 3 Falsche Syntax in der Nähe von '4'. –