Требуется запрос sql на основе некоторого условия - PullRequest
0 голосов
/ 14 июля 2020
select CardCode, ItemCode, T0.DocDate, ''[CustomerType]  from OINV T0 inner Join INV1 T1 on T1.DocEntry = T0.DocEntry and year(T0.DocDate) >= year(getdate()) -4 

Я добавил еще один столбец под названием «CustomerType», он будет выглядеть как « Новый », « Существующий », « Еще один продукт »

Условия для проверки на основе столбца docdate и код товара :

  1. например, сейчас 2020 год, если 2019 там нет продаж, тогда тип клиента = ' Новый ' else ' Существующий '. Необходимо проверить на основе столбца « CardCode »

  2. например: те клиенты типа «существующие», мне нужно проверить, приобрели ли они код товара раньше или нет, если они купили тогда тип клиента остается как «существующий», если не должен отображаться как « Еще один продукт ». Необходимо проверить на основе столбца « ItemCode »

набор результатов выборки:

CardCode    ItemCode    DocDate     CustomerType
C-SGD-2748  V0796-0038  2017-01-24 
C-SGD-1489  V0796-0066  2020-06-10 
C-SGD-2748  V0796-0106  2019-01-15  
C-SGD-1489  V0796-0130  2019-05-17 
C-SGD-2652  V0805-0001  2016-12-08 

1 Ответ

0 голосов
/ 14 июля 2020

Вы можете использовать case и оконные функции:

select t.*,
       (case when min(docdate) over (partition by cardcode) >= '2020-01-01'
             then 'New'
             when row_number() over (partition by cardcode, itemcode order by docdate) > 1
             then 'existing'
             else 'one more product'
        end) as customertype

Я считаю эти типы довольно запутанными. Однако, похоже, это именно то, что вы описываете.

...