Hallå,
Låt oss säga att jag har en faktatabell med transaktioner som ser ut såhär:
Och jag vill nu kolla om någon kategori återkommer inom en vecka och märka upp dessa med en "1", jag har då antagit att jag måste göra såhär, genom att använda en sub query och joina tabellen med sig själv:
Det skulle alltså ge mig följande resultat:
Och sen vill jag väl troligtvis märka upp raden som är själva den återkommande transaktionen med ett annat värde. Så då måste jag joina tabellen med sig själv igen.
Jag funderar på om det kan tänkas finnas ett effektivare sätt att lösa detta?
Låt oss säga att jag har en faktatabell med transaktioner som ser ut såhär:
Kod:
ID Datum Transaktionstyp 1 2015-01-01 Transa A 2 2015-01-05 Transa B 3 2015-01-06 Transa A 4 2015-01-20 Transa C
Och jag vill nu kolla om någon kategori återkommer inom en vecka och märka upp dessa med en "1", jag har då antagit att jag måste göra såhär, genom att använda en sub query och joina tabellen med sig själv:
Kod:
SELECT t1.ID ,t1.Datum ,t1.Transaktionstyp ,CASE WHEN t2.ID is not null THEN 1 ELSE 0 END as Återkommer FROM fakta_transor LEFT JOIN (SELECT ID, Datum, Transaktionstyp FROM fakta_transor) t2 ON t1.Transaktionstyp=t2.Transaktionstyp and t1.ID != t2.ID and DATEDIFF(WEEK,t1.Datum,t2.Datum) between 0 and 1
Det skulle alltså ge mig följande resultat:
Kod:
ID Datum Transaktionstyp Återkommer 1 2015-01-01 Transa A 1 2 2015-01-05 Transa B 0 3 2015-01-06 Transa A 0 4 2015-01-20 Transa C 0
Och sen vill jag väl troligtvis märka upp raden som är själva den återkommande transaktionen med ett annat värde. Så då måste jag joina tabellen med sig själv igen.
Jag funderar på om det kan tänkas finnas ett effektivare sätt att lösa detta?