Структура таблицы:
Код: Выделить всё
CREATE TABLE MyTable
(
ID int,
Query varchar(max)
)
Код: Выделить всё
UPDATE MyTable
SET Query = '{{child query}}'
WHERE ID = @ID;
Код: Выделить всё
DECLARE @ServiceIDsTableString AS varchar(20)
SET @ServiceIDsTableString = @ServiceIDsString
DECLARE @ServiceIDs TABLE (ServiceID INT PRIMARY KEY CLUSTERED)
DECLARE @OrderID varchar(10), @Pos int
SET @ServiceIDsTableString = LTRIM(RTRIM(@ServiceIDsTableString)) + ','
SET @Pos = CHARINDEX(',', @ServiceIDsTableString, 1)
IF REPLACE(@ServiceIDsTableString, ',', '') ''
BEGIN
WHILE @Pos > 0
BEGIN
SET @OrderID = LTRIM(RTRIM(LEFT(@ServiceIDsTableString, @Pos - 1)))
IF @OrderID ''
BEGIN
INSERT INTO @ServiceIDs (ServiceID)
VALUES (CAST(@OrderID AS int))
END
SET @ServiceIDsTableString = RIGHT(@ServiceIDsTableString, LEN(@ServiceIDsTableString) - @Pos)
SET @Pos = CHARINDEX(',', @ServiceIDsTableString, 1)
END
END
DECLARE @CurrentTime_UTC AS DateTime
SELECT @CurrentTime_UTC = GETUTCDATE()
DECLARE @ProviderTripIDs TABLE (ProviderTripID varchar(255))
INSERT INTO @ProviderTripIDs
SELECT ProviderTripID
FROM MfTrips mt WITH (nolock)
INNER JOIN Mfs m WITH (nolock) ON m.MfID = mt.MfID
INNER JOIN MfDatas md WITH (nolock) ON md.MfDataID = m.MfDataID
INNER JOIN locations lp WITH (nolock) ON mt.PickLocationID = lp.LocationID
INNER JOIN Locations ld WITH (nolock) ON mt.DropLocationID = ld.LocationID
INNER JOIN Customers c WITH (nolock) ON mt.CustomerID = c.CustomerID
INNER JOIN Reservations r WITH (nolock) ON r.ReservationID = mt.ReservationID
WHERE
m.active = 1
AND r.ParentReservationID = 0
AND m.date = @Date
AND mt.ProviderID = 1
AND mt.MfTripStatusID = 1
AND mt.ModeID = 3
AND mt.PassengerTypeID IN (SELECT PassengerTypeID
FROM PassengerTypes WITH (nolock)
WHERE CorePassengerTypeID = 1)
AND mt.ServiceID IN (SELECT ServiceID FROM @ServiceIDs)
AND md.MfDataTypeID = dbo.GetCurrentMfDataTypeID(m.Date)
AND (mt.WillCall = 0 OR mt.WillCallReadyAt >= '1/1/2000')
AND m.description = 'Unassigned'
AND mt.LevelOfServiceID = 1
AND mt.TripPurposeID NOT IN (1)
AND dbo.GetAge(c.BirthDate, m.Date) < 75
AND (dbo.GetAge(c.BirthDate, m.Date) > 18 or
1 = (SELECT TOP 1 1
FROM MfTripExtraPassengers imtep WITH (nolock)
WHERE imtep.MfTripID = mt.MfTripID
AND imtep.Deleted_UTC IS NULL
AND dbo.GetAge(imtep.BirthDate, m.Date) > 18))
AND (SELECT COUNT(*)
FROM MfTripExtraPassengers imtep WITH (nolock)
WHERE imtep.MfTripID = mt.MfTripID
AND imtep.Deleted_UTC IS NULL) m.Date then mt.ScheduledPickWindowBegin AT TIME ZONE (select Value from ClientSettings where ClientSettingID = 22) when mt.scheduledDropWindowEnd
Подробнее здесь: [url]https://stackoverflow.com/questions/79175563/how-to-use-query-with-quotes-inside-a-parent-query[/url]