【发布时间】:2019-11-04 17:19:00
【问题描述】:
我的 CTE 出现错误。我在 Amazon RDS 上托管数据库。我的计算机(本地主机)上有另一个示例数据库主机。 CTE 在我的本地计算机上运行良好。我认为 Amazon RDS 有问题。也许它不支持 CTE。有人遇到同样的问题吗?知道如何解决此问题或如何在没有 CTE 的情况下重写此查询?对此的任何帮助将不胜感激。
WITH StoreSku AS
(
SELECT
S.StoreName
, RTRIM(LTRIM(LEFT(S.StoreName, 4))) 'StoreNumber'
, P.Sku
, P.Description
FROM simplymac_staging.LocationMasterList S
CROSS JOIN simplymac_staging.`dbo.Sku` P
WHERE S.Disabled = 0
),
Inventory AS
(
SELECT
I.StoreName
, RTRIM(LTRIM(LEFT(I.StoreName, 4))) 'StoreNumber'
, I. ProductName
, I.ProductIdentifier
, I.UnitCost
, SUM(I.Quantity) 'Quantity'
, I.BinStatus
FROM simplymac_staging.inventorylistinstores I
GROUP BY
I.ProductIdentifier
, I.ProductName
, I.BinStatus
, I.StoreName
, I.UnitCost
)
SELECT
P.StoreName
, P.Description
, P.Sku
, CASE WHEN I.BinStatus in ('String_InStock') THEN I.Quantity ELSE 0 END ' In Stock'
, CASE WHEN I.BinStatus in ('String_TransferIn') THEN I.Quantity ELSE 0 END 'TransferIn'
, CASE WHEN I.BinStatus in ('String_TransferOut') THEN I.Quantity ELSE 0 END 'TransferOut'
, CASE WHEN I.BinStatus in ('String_OnOrder') THEN I.Quantity ELSE 0 END 'OnOrder'
FROM StoreSku P
LEFT JOIN Inventory I ON I.ProductIdentifier = P.ID AND I.StoreNumber = P.StoreNumber
错误
错误代码:1064。您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“Stores AS (SELECT S.StoreName, RTRIM(LTRIM(LEFT(S.StoreName, 4))) 'St' 附近使用正确的语法
再一次,对于在没有 CTE 的情况下重写我的查询的任何帮助将不胜感激。非常感谢你
【问题讨论】:
-
错误信息与给定的查询不匹配。在发布的代码中,它是
WITH StoreSku AS,并且在您提供的错误消息中显示为Stores AS。只是想确认您收到与发布的代码相同的错误。
标签: mysql mysql-workbench common-table-expression