La siguiente consulta:Conseguir un error extraño, consulta de SQL Server usando `cláusula WITH`
WITH
CteProductLookup(ProductId, oid)
AS
(
SELECT p.ProductID, p.oid
FROM [dbo].[ME_CatalogProducts] p
)
SELECT
rel.Name as RelationshipName,
pl.ProductId as FromProductId,
pl2.ProductId as ToProductId
FROM
(
[dbo].[ME_CatalogRelationships] rel
INNER JOIN CteProductLookup pl
ON pl.oid = rel.from_oid
)
INNER JOIN CteProductLookup pl2
ON pl2.oid = rel.to_oid
WHERE
rel.Name = 'BundleItem' AND
pl.ProductId = 'MX12345';
está generando este error:
Msg 319, Level 15, State 1, Line 5 Incorrect syntax near the keyword 'with'. If this statement is a common table expression, an xmlnamespaces clause or a change tracking context clause, the previous statement must be terminated with a semicolon.
En ejecución solamente. No hay errores/advertencias en la declaración sql en el estudio de gestión.
¿Alguna idea?
por qué incluso el uso de un CTE aquí? ¿no podría simplemente unirse a la tabla actual '[dbo]. [ME_CatalogProducts]' en lugar de la cte 'CteProductLookup', que realmente no hace nada? –
Para la extensión posterior, pero tiene razón, no la necesito en este ejemplo. – Aren