Dean
Dean

Reputation: 159

Issue with Stored Procedure modify in SQL

Trying to amend a stored procedure and getting this error

Msg 156, Level 15, State 1, Procedure webopius_OrderExport, Line 14
Incorrect syntax near the keyword 'left’.

The code is

ALTER proc [dbo].[webopius_OrderExport]           
AS      
   SET NOCOUNT ON
BEGIN
   SELECT 
      convert(varchar, getdate(), 103) ExtractDate, 
      o.StoreID, o.OrderNumber OrderNumber,    
      o.CustomerID, o.FirstName, o.LastName, o.Email, o.AffiliateID
      left(cast(o.OrderNotes as varchar(100)), 100) OrderNotes,
      o.ShippingFirstName, o.ShippingLastName, o.ShippingMethod,
      left(left(case o.ShippingCompany when '' then '' else o.ShippingCompany+' ' end,80)+o.ShippingAddress1, 100) ShippingAddress1,
      left(o.ShippingAddress2, 100) ShippingAddress2, left(o.ShippingSuite, 30) ShippingSuite, 
      left(o.ShippingCity, 50) ShippingCity, 
      left(o.ShippingState, 50) ShippingState, 
      left(o.ShippingZip, 13) ShippingZip, 
      o.ShippingCountry ShippingCountry, o.ShippingPhone,
      cast(isnull(a.ExtensionData,'') as nvarchar(200)) ShippingTitle,
      o.ShippingMethodID, 
      convert(varchar(10), o.OrderDate, 103) as OrderDate, 
      left(os.OrderedProductSKU, 40) SKU, 
      os.Quantity, 
      isnull(os.OrderedProductRegularPrice, 0) OrderedProductRegularPrice, 
      ISNULL(os.OrderedProductPrice,0) OrderedProductPrice, 
      isnull(os.OrderedProductSalePrice,0) OrderedProductSalePrice , 
      isnull(o.LevelHasNoTax, 0) LevelHasNoTax, 
      TaxRate, os.IsTaxable, OrderShippingCosts, o.OrderSubtotal SubTotal,
      left(upper(o.BillingFirstName + ' ' + o.BillingLastName), 80) AS BillingName, 
      left(left(case o.BillingCompany when '' then '' else o.BillingCompany+' ' end,80)+o.BillingAddress1,100) BillingAddress1,
      left(o.BillingAddress2, 100) BillingAddress2, 
      left(o.BillingSuite, 30) BillingSuite, 
      left(o.BillingCity, 50) BillingCity, 
      left(o.BillingState, 50) BillingState, 
      left(o.BillingZip, 8) BillingZip, 
      o.BillingCountry BillingCountry, o.BillingPhone,  
      o.CardType, o.CardName, o.CardNumber, 
      o.CardExpirationMonth+'/'+o.CardExpirationYear CardExpiryDate,
      o.CardStartDate, o.CardIssueNumber,
      o.PaymentMethod, o.LevelID, os.ProductID, os.VariantID,
      c.CustomerID, 
      '"' + isnull(cast(c.ExtensionData as nvarchar(200)), '') + '"' ExtensionData,
      m.Name Supplier, p.Name ProductName,  
      '"' + isnull(cast(p.ExtensionData as nvarchar(200)), '') + '"' ProdExtensionData
   FROM 
      dbo.Orders o with (NOLOCK)
   left join 
      orders_ShoppingCart os WITH (NOLOCK) ON os.OrderNumber = o.OrderNumber   
   left join 
      Customer c WITH (NOLOCK) on c.CustomerID = o.CustomerID 
   left join 
      Product p with (NOLOCK) on p.ProductID = os.ProductID
   left join 
      ProductManufacturer pm with (NOLOCK) on pm.ProductID = os.ProductID
   left join 
      Manufacturer m with (NOLOCK) on m.ManufacturerID = pm.ManufacturerID 
   left join 
      Address a with (NOLOCK) on a.AddressID = c.ShippingAddressID 
   WHERE 
      o.OrderNumber = os.OrderNumber 
      AND o.ShippedOn IS NULL 
      AND (o.TransactionState IN ('AUTHORIZED', 'CAPTURED') 
           OR (o.TransactionState = 'PENDING' and o.PaymentMethod='PURCHASEORDER'))
      AND IsNew = 1
      AND o.StoreID <> 4
   ORDER BY 
      ordernumber
END

The column does exist in the SQL table where the left command is shown.

Any ideas where I'm going wrong?

Upvotes: 0

Views: 51

Answers (2)

chrlsuk
chrlsuk

Reputation: 56

Your code reads at about line 20

 o.CustomerID, o.FirstName, o.LastName, o.Email, o.AffiliateID

 left(cast(o.OrderNotes as varchar(100)),100) OrderNotes,

it should read

 o.CustomerID, o.FirstName, o.LastName, o.Email, o.AffiliateID, --comma added here

 left(cast(o.OrderNotes as varchar(100)),100) OrderNotes,

Easy, missing comma

Upvotes: 2

Gerrat
Gerrat

Reputation: 29690

You're missing a comma on the previous line, after o.AffiliateID.

Upvotes: 1

Related Questions