【问题标题】:How to select records in SQL where one SKU has 2 or more of the same end date如何在 SQL 中选择一个 SKU 具有 2 个或多个相同结束日期的记录
【发布时间】:2022-11-28 22:11:51
【问题描述】:

我试图在表格中提取一个项目列表,其中有超过 1 个结束日期 12/31/2100,因为项目应该只有 1 个(每个价格行)。这是我到目前为止的查询:

SELECT PCL.*, SKUP.SKU_DESC,COUNT(CASE WHEN CONVERT(DATE,PCL.DATEEND) = CONVERT(DATE,"12/31/2100")) AS [Count]
FROM PCL LEFT JOIN SKUP ON PCL.SKU = SKUP.SKU
WHERE PCL.PRICELINE = "R12-RETAILER"
GROUP BY PCL.SKU
WHERE [Count] > 1

PCL 是价格表,只是为项目描述引入 SKUP 表。 当我在 Access 中运行此查询时,出现错误“查询表达式 'COUNT(CASE WHEN CONVERT(DATE,PCL.DATEEND) = CONVERT(DATE,"12/31/2100"))' 中出现语法错误(缺少运算符)” ”

有人能帮我确定如何纠正这个问题,或者帮我找到一篇可以更好地解释这个问题的文章吗?

今天早上我一直在谷歌上搜索很多,试图为这个特定的应用程序找到更好的例子,但仍然学到了很多关于 SQL 查询中的 Group By 和 Count 函数的知识

编辑以描述我想要的结果,我只是想从表中提取 2+ 日期 12/31/2100 的记录,因为每个项目应该只有 1 个“持续”价格。如果我可以导出它,我应该能够根据开始日期确定之前的价格应该在哪里结束。

【问题讨论】:

    标签: sql ms-access ms-access-2010


    【解决方案1】:

    我不熟悉 Access 具体但不应该这一行:

    COUNT(CASE WHEN CONVERT(DATE,PCL.DATEEND) = CONVERT(DATE,"12/31/2100"))
    

    是这样的:

    SUM(CASE WHEN CONVERT(DATE,PCL.DATEEND) = CONVERT(DATE,"12/31/2100" THEN 1 ELSE 0 END))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多