Я не совсем понимаю, как интерпретировать сообщения об ошибках T-SQL относительно номеров строк и «Batch Start Line».
Когда я пытаюсь запустить CREATE PROCEDURE
, я получаю следующееошибки:
Сообщение 102, уровень 15, состояние 1, процедура LoadIndexersReports, строка 119 [Строка пакетного запуска 9]
Неверный синтаксис рядом с ')'.
Сообщение 102,Уровень 15, состояние 1, процедура LoadIndexersReports, строка 120 [Batch Start Line 9]
Неверный синтаксис рядом с ')'.
Когда я перехожу к строке 119, это код, который, как я знаю, долженхорошо, потому что я скопировал код, поэтому я решил закомментировать весь блок.
Я все еще получаю ту же ошибку, но все строки вокруг 119 фактически закомментированы.
Как я должен это интерпретировать?
Есть какие-нибудь подсказки о странном способе, которым T-SQL сообщает об ошибках?
Возможно, я смогу разобраться с этим и выяснить, в чем проблема.
Это не таквопрос.
Я озадачен тем, насколько глупой и бессмысленной представляется ссылка на строку, и если есть способ это исправить.
Вот полный код, вставленный в первую строку 1с оператором [USE]:
USE [QtyCompare]
GO
/****** Object: StoredProcedure [dbo].[LoadRecentlyIndexed] Script Date: 10/10/2018 1:01:02 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[LoadIndexersReports]
@StartDate DATE, @DaysForward INT
AS
BEGIN
SET NOCOUNT ON
-- IF OBJECT_ID('dbo.TempRecentlyIndexedRaw'U') IS NOT NULL
DELETE FROM dbo.TempRecentlyIndexedRaw
DECLARE @pLastModified DATETIME,
@pPONO VARCHAR(50),
@pProduct VARCHAR(100),
@pQuantity VARCHAR(15),
@pHeat VARCHAR(25),
@pProduct_Description VARCHAR(250),
@pSerial_Or_Lot VARCHAR(50),
@pCoreData_IID_ssField14 INT,
@pDocId INT,
@pIndexers VARCHAR(200),
@pAR_Alpha VARCHAR(50),
@pValve BIT,
@tempString VARCHAR(500),
@pARs VARCHAR(250) /*sorted ALPHABETICALLY, ASCENDING ... Note: ABC234 > ABC1111, because its sorted ALPHABETICALLY */
-- If Documents were deleted, remove them from your ocean
DELETE IH
FROM IndexHistory IH
LEFT JOIN IndexedLineItems LI ON IH.Docid = LI.DocId
WHERE LI.DocId IS NULL
-- *************************************************************************************
-- * B.
-- PULL FROM RAW, CREATE TempRecentlyIndexed
--
-- *************************************************************************************
IF OBJECT_ID('dbo.TempRecentlyIndexed', 'U') IS NOT NULL
DROP TABLE dbo.TempRecentlyIndexed;
SELECT *
INTO TempRecentlyIndexed
FROM IndexHistory
WHERE LastModified >= @StartDate
AND [LastModified] <= CAST(DATEADD(dd, @DaysForward - 1, GETDATE()) AS DATE)
-- *************************************************************************************
-- * C. Generate your reports from TempRecentlyIndexed
--
--
-- *************************************************************************************
--lines summary
SELECT
Indexers, SUM(LinesIndexed) AS [Total Lines Indexed],
SUM(LinesFactoringInValvesTTLHeats) AS [Total Lines Indexed Factoring In Valves (Multiple Heats)]
FROM
(SELECT
Indexers, AR_Alpha,
COUNT(*) AS LinesIndexed, SUM([Heat Items]) AS LinesFactoringInValvesTTLHeats
FROM
(SELECT
LastModified, PONO, Product, Quantity,
IIF(Charindex('Valve Heats', Heat) > 0, CAST(Replace(Heat, ' Valve Heats', '') AS INT), 1) AS [Heat Items],
DocId, Indexers, AR_Alpha
FROM
[dbo].[TempRecentlyIndexed]
WHERE
product IS NOT NULL) AS AAA
GROUP BY
AR_Alpha, Indexers) PreviousQuery
GROUP BY
Indexers
ORDER BY
Indexers
--documents
Select Indexers, Count(*) as [Documents Indexed] from
(
Select distinct Docid, Indexers from [dbo].[TempRecentlyIndexed] where Product is not null
) as AAA
group by Indexers
order by Indexers
--lines detail
select Indexers, AR_Alpha, Count(*) as [Lines Indexed], Sum([Heat Items]) as [Total Lines Indexed Factoring In Valves (Multiple Heats)] from
(
SELECT LastModified, PONO, Product, Quantity, IIF(Charindex('Valve Heats',Heat)>0,Cast(Replace(Heat,' Valve Heats','') as int),1) as [Heat Items], DocId, Indexers, AR_Alpha from [dbo].[TempRecentlyIndexed] where product is not null
) as AAA
group by AR_Alpha, Indexers
order by Indexers, AR_Alpha
-- *************************************************************************************
-- * D. Generate summaries for comparison with Arrivals data
--
--
-- *************************************************************************************
-- Recently Indexed Summary
-- IF OBJECT_ID('dbo.TempRecentlyIndexedSummary', 'U') IS NOT NULL
-- DROP TABLE dbo.TempRecentlyIndexedSummary;
--
-- select LastModified, Product, sum(CASE WHEN ISNUMERIC(Quantity + 'e0') = 1 THEN CAST(Quantity AS float) ELSE 0 END) AS Quantity, Indexers, AR_Alpha, ARs
-- into TempRecentlyIndexedSummary
-- from TempRecentlyIndexed
-- where product is not null
-- Group by LastModified,Product,INdexers,AR_Alpha,ARs
-- *************************************************************************************
-- * D2. Load Related Records
--
--
-- *************************************************************************************
Delete from dbo.TempRelatedIndexedRaw
Delete from dbo.TempRelatedIndexed
SELECT distinct ARs into #ARList FROM [dbo].[IndexHistory] WHERE [LastModified] <= cast( dateadd(dd,@DaysForward-1,@StartDAte) as date) AND [LastModified] >= @StartDate)
Select * into TempRelatedIndexed from IndexHistory left Join #ARList on IndexHistory.ARs = #ARList.ARs where Not([LastModified] <= cast( dateadd(dd,@DaysForward-1,@StartDAte) as date) AND [LastModified] >= @StartDate))
-- Summary to include both recently indexed and related indexed
IF OBJECT_ID('dbo.TempIndexedSummary', 'U') IS NOT NULL
DROP TABLE dbo.TempIndexedSummary;
Select Product, Sum(Quantity) as Quantity, AR_Alpha, ARs into TempIndexedSummary from
(Select * from TempRecentlyIndexedSummary
Union All
Select * from TempRelatedIndexedSummary) CombinedSummaries
group by Product, AR_Alpha, ARs
--exec [dbo].[LoadRecentlyIndexedARSets]
--Arrival Summary
IF OBJECT_ID('dbo.TempArrivalSummary', 'U') IS NOT NULL
DROP TABLE dbo.TempArrivalSummary;
Select AProdNo as Product, Sum(QTY) as Quantity, ARs into TempArrivalSummary from
(
select RA.*, ARSets.[Set] as ARs from
(Select * from Raw_Arrival Union All Select * from Arrivals_2017 ) RA
left join [IndexHistoryARSets] ARSets on RA.ARsupp = ARSets.AR
where RA.TrueBOSTK = 'STK' and (ARSets.[Set] is not null)
) Arrivals
group by AProdNo, ARs
-- *************************************************************************************
-- * E. Generate DISCREPENCY report based on summary
--
--
-- *************************************************************************************
--Generate Discrepency Report
select Coalesce(TAS.Product,'<No Data>') as Arrival_Product, Coalesce(TAS.ARs,'<No Data>') Arrival_ARs, Coalesce(TAS.Quantity ,0) as Arrival_Qty, Coalesce(TIS.Quantity ,0) as Indexed_Qty, Coalesce(TIS.Product ,'<No Data>') as Ndx_Product, Coalesce(TIS.ARs ,'<No Data>') as Ndx_ARs,
Coalesce((Select top 1 Indexers from TempRecentlyIndexed TRI where TRI.ARs = TIS.ARs), '<No Data>')
from
TempArrivalSummary TAS FULL OUTER JOIN TempIndexedSummary TIS
on TAS.Product = TIS.Product and TAS.ARs = TIS.ARs
-- *************************************************************************************
-- * E. Generate Pivot table data
--
--
-- *************************************************************************************
--THIS IS YOUR PIVOT SET FOR HARSHAL
Select PivotMain.*, Coalesce(PivotAdditional.Country,'Unknown') as Country, Coalesce(PivotAdditional.[Assigned Indexer], 'Undefined') as [Assigned Indexer], Replace(Coalesce(PivotAdditional.Automated,''),'X','YES') as Automated, Coalesce(PivotAdditional.Domestic,'') as Domestic, PivotAdditional.[Line Items Recieved To Date] as [Relative Volume] from
(Select Indexers, 1 as Lines, iif(Charindex('Valve Heats', Coalesce(Heat,''), 0)>0,Cast(RTrim(LTrim(Replace(Heat,'Valve Heats',''))) as int),1) as [Lines Factoring In Valves], Docid, LastModified, AR_Alpha as Supplier, iif(Charindex('.', AR_Alpha)=2,RIGHT(ar_ALPHA,LEN(ar_aLPHA)-2),AR_Alpha) as Suffix, ARs from [dbo].[TempRecentlyIndexed]) PivotMain
left join Suffix PivotAdditional on (PivotMain.Supplier = PivotAdditional.Supplier and PivotMain.Suffix = PivotAdditional.Suffix)
End
GO