需要基于条件的SQL查询

时间:2020-07-21 12:00:54

标签: sql sql-server sql-server-2016

这是我的SQL查询

select CardCode, ItemCode, DocDate, DocYear from OINV

我需要添加更多名为 customertype

的列
  1. 新=>如果没有基于上一年的购买交易。 2020年是2019年,2019年是2018年,2018年是2017年,2017年是2016年,依此类推。然后,客户类型为“ ”。

  2. OneMoreProduct =>物品代码基于每个客户的物品代码历史记录2020、2019、2018、2017等,如果是第一次购买此物品代码。然后,客户类型为“ 其他产品

  3. 现有=>如果以上两个条件都不符合,则为“ 现有

我需要根据这三种类型编写案例。

2 个答案:

答案 0 :(得分:0)

您可能想对列进行CASE语句。

您的规则不明显,因为您没有发布示例DDL和示例数据。 如果您想要一个好的答案,请发布DDL,插入示例数据...然后提出问题。参见:https://stackoverflow.com/help/minimal-reproducible-example

但这是一个通用答案。

MyClass

您将根据需要“编码” WHEN语句。

答案 1 :(得分:0)

在SQL Server 2008中,可用的窗口功能受到限制。一种方法使用 8?712 ??表达式:

case