webForumDet fria alternativet

Matematiskutmaning

3 svar · 249 visningar · startad av aleborg

aleborgMedlem sedan jan. 20012 962 inlägg
#1

Jag har en tabell som har följande fält:

ID - int
Period - int
Created -datetime
+ ett antal ointressanta fält till

Jag vill genom att skicka in t ex 2005-01-01(dvs januari 2005) få ut alla vars datum(Created) matchar med Perioden på 2005-01
t ex Period: 3 och Created: 2004-07 blir 2005-01(men även 2004-10, 2005-04), Period: 24 och Created: 2003-01 blir 2005-01 osv.

Hur ska SQL-frågan se ut?

aleborgMedlem sedan jan. 20012 962 inlägg
#2

Just nu ser koden ut så här:

			SELECT ID,ProductID,AccountNamesID,UserID,ServerID,Article,[Name],Description,Period,Qty,Price,Created,Ended FROM ServiceItems
			WHERE     (Period <> 0)  AND UserID=@userid AND ((Period = 1) OR
                      (Period * 2 = DATEDIFF(mm, Created, @month)) OR
                      (Period * 3 = DATEDIFF(mm, Created, @month)) OR
                      (Period = DATEDIFF(mm, Created, @month)))

Nån som kan se om den kommer att missa nått?

LarsGMedlem sedan dec. 200012 465 inlägg
#3
 SELECT ID,ProductID,AccountNamesID,UserID,ServerID,Article,Name,
   Description,Period,Qty,Price,Created,Ended 
FROM ServiceItems
WHERE Period <> 0
  AND UserID = @userid 
  AND DATEDIFF(mm, Created, @month) % period = 0
aleborgMedlem sedan jan. 20012 962 inlägg
#4

Klockrent :D
Satt i natt och var inne på samma sak men var för trött för att fatta att det var mod jag skulle använda! :e

Genererad på 375 ms · cache AV · v20260730165559-full.f96bc7eb