AI & automation

Hur jag bygger weekday-aligned jämförelser i SQL med AI

En av de enklaste analysmissarna är att jämföra kalenderdatum som om alla veckodagar betedde sig likadant. När jag bygger SQL-jämförelser vill jag därför göra veckodagslogiken explicit innan en AI-agent får skriva queryn.

Shadip Rahman 6 oktober 2026 2 min läsning
Dela
Flöde i artikelns ordning: Varför kalenderdatum ger skeva jämförelser, Definiera jämförelsen innan SQL:n, DATEFIRST är en dold fälla, Kalenderdimension slår smart datumgymnastik.

En av de enklaste analysmissarna är att jämföra kalenderdatum som om alla veckodagar betedde sig likadant. När jag bygger SQL-jämförelser vill jag därför göra veckodagslogiken explicit innan en AI-agent får skriva queryn.

Varför kalenderdatum ger skeva jämförelser

När jag analyserar bokning, kapacitet eller prisutfall vill jag ofta jämföra en tisdag med en tisdag, inte den 3 september med den 3 september bara för att datumen råkar matcha. Veckodagseffekter kan vara stora. Om man ignorerar dem kan en helt normal måndag se ut som ett tapp mot en ovanligt stark fredag föregående år.

Definiera jämförelsen innan SQL:n

Jag börjar med affärsregeln: ska vi jämföra samma veckodag närmast föregående år, samma ISO-vecka och veckodag, eller exempelvis exakt 364 dagar bakåt? De tre alternativen ger inte alltid samma rad. AI får gärna hjälpa mig skriva queryn, men den får inte välja definitionen åt mig utan att det är explicit.

DATEFIRST är en dold fälla

I SQL Server påverkas DATEPART(weekday, ...) av SET DATEFIRST och språk/sessioninställningar. Därför undviker jag att bygga affärslogik på ett implicit antagande om att måndag alltid är 1. Antingen sätter jag sessionregeln explicit eller använder en stabil kalenderdimension med ett eget weekday-fält.

Kalenderdimension slår smart datumgymnastik

För återkommande analys föredrar jag en datumtabell som redan innehåller datum, ISO-vecka, veckodag, helgdag, månad, år och eventuella verksamhetsspecifika flaggor. Då blir queryn enklare att läsa och samma definition återanvänds i Power BI, SQL och andra analyser.

AI:s roll i queryn

Jag använder coding agenten för att formulera join-logik, edge cases och tester. Sedan validerar jag mot handplockade datum: årsskifte, skottår, veckor som korsar månad, helgdag och ett par normala vardagar. Ett queryförslag som ser elegant ut men inte klarar de fallen går inte vidare.

Ett robust testkontrakt

Innan queryn används i en rapport ska varje outputrad kunna förklara vilket jämförelsedatum som valdes och varför. Jag vill kunna lägga kolumner som CurrentDate, ComparisonDate, CurrentWeekday och ComparisonWeekday bredvid varandra och snabbt se om joinen är rimlig.

Slutsats

AI gör datumlogik snabbare att skriva, men den gör inte definitionen mindre viktig. Ju mer analysen ska återanvändas, desto mer vinner man på att flytta kalenderlogiken från improviserade expressions till en explicit datamodell.

Relaterade artiklar

SQLSQLdataanalys och AI
Dela