webForumDet fria alternativet

procedur & tomt värde

9 svar · 306 visningar · startad av doggelito

doggelitoMedlem sedan juni 20003 076 inlägg
#1

Hur kan jag skriva om denna så att Shift kan vara tomt?

CREATE PROCEDURE sp_productionlog_sum_week
@Shift int,
@Current_date datetime
AS
SELECT Sum(Pr.St), Sum(Pr.Kg), Sum(Pr.Totkg), Sum(pr.Stoptime), Sum(Pr.Prodtime)
FROM puuser.Productionlogtbl Pr
Where Pr.Shift = @Shift And DatePart(year,Pr.Regdate) = year(@Current_date) And 
DatePart(week,Pr.Regdate) = DatePart(week,@Current_date)
GO
LarsGMedlem sedan dec. 200012 464 inlägg
#2
Where coalesce(Pr.Shift,@shift) = @Shift

eller menar du @shift eller båda?

doggelitoMedlem sedan juni 20003 076 inlägg
#3

Från asp-sidan hämtar jag så här

Set rs_sum_week = objConn.execute("sp_productionlog_sum_week " & Shift & ", '" & First_date & "' ")

Variabeln Shift kan ibland vara helt tom, går det att göra nån if-tagg (typ) innuti proceduren?

@ndersMedlem sedan juni 200032 969 inlägg
#4

Varför inte göra en if-sats på asp-sidan?

doggelitoMedlem sedan juni 20003 076 inlägg
#5

Grejjen är att om Shift är tomt så ska alla Shift visas.
Hm, visst skulle jag ju kunna skriva:

Where Pr.Shift In (@Shift) And .....

Och så matar jag in alla Shift istället för tomt.
Förstår ni eller är jag för otydlig?

doggelitoMedlem sedan juni 20003 076 inlägg
#6

Hjälp!
Bör man inte kunna skriva nått i stil med:

Where (Case When Len(@shift) <> 0 Then Pr.Shift = @Shift) And....
doggelitoMedlem sedan juni 20003 076 inlägg
#7

Jag börjar om igen efter ett par misslyckade försök med olika kodningar :(

CREATE PROCEDURE sp_productionlog_sum_week
@Shift int,
@Current_date datetime
AS
SELECT Sum(Pr.St), Sum(Pr.Kg), Sum(Pr.Totkg), Sum(pr.Stoptime), Sum(Pr.Prodtime)
FROM puuser.Productionlogtbl Pr
Where Pr.Shift = @Shift And DatePart(year,Pr.Regdate) = year(@Current_date) And 
DatePart(week,Pr.Regdate) = DatePart(week,@Current_date)
GO

Shift = Request.Form("Shift")
First_date = Ett datum

Set rs_sum_week = objConn.execute("sp_productionlog_sum_week " & Shift & ", '" & First_date & "' ")

Variabeln Shift kan alltså vara tom, tex. när man kommer in på sidan första gången.
Man bör väl kunna kolla i proceduren om @Shift får ett värde så ska värdet användas annars ska Pr.Shift ignoreras och alltså visa alla, eller?

LarsGMedlem sedan dec. 200012 464 inlägg
#8
Where coalesce(@shift,pr.shift) = pr.Shift
doggelitoMedlem sedan juni 20003 076 inlägg
#9

Det närmar sig!
Jag reagerade inte på ditt svar LarsG förra gången pga. att det blev fel
då med, och då trodde jag att du missförstod mig.
I alla fall, får inte @Shift nått värde nu så visas ingen post, kan
man vända på nått i koden? den ska alltså visa alla poster. :)

doggelitoMedlem sedan juni 20003 076 inlägg
#10

Jahapp då är det bevisat! jag är ordblind!!!
Du skrev ju inte lika som förra gången.
Skit samma nu funkar det, jag skickar in ett null-värde om request.form("shift") är tomt inte en tom sträng.

137 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)