Avatar billede brownghost Nybegynder
26. september 2007 - 22:04 Der er 19 kommentarer og
1 løsning

trække 1 fra et tal i sql streng

strSQL = "UPDATE Shop_ItemVersions SET StockCount = -1 WHERE ID = " & rsStockAuto("Expr5")
        objConn.Execute(strSQL)

dette kan man ikke :( så sætter den bare -1 in i stedet for det antal der står.

jeg ville gerne have den trækker 1 (Dynamisk kan være andet antal) fra det antal der står i DB
Hvordan gør jeg det i den streng der ?

Tak :)
Avatar billede nielle Nybegynder
26. september 2007 - 22:06 #1
Sådan?

strSQL = "UPDATE Shop_ItemVersions SET StockCount = StockCount - 1 WHERE ID = " & rsStockAuto("Expr5")
Avatar billede brownghost Nybegynder
26. september 2007 - 22:08 #2
ohhh he.. nice... tester lige.

Spørgsmål mere, hvis nu der står 0 i DB
den den prøver at trække eks 5 fra, skriver den så 0 forsat eller -5 i DB ??
Avatar billede nielle Nybegynder
26. september 2007 - 22:11 #3
-5
Avatar billede brownghost Nybegynder
26. september 2007 - 22:14 #4
Shit :( skulle gerne bare skrive 0


det andet virker :) Tak..

strSQL = "UPDATE Shop_ItemVersions SET StockCount = StockCount - " & rsStockAuto("Expr6") & " WHERE ID = " & rsStockAuto("Expr5")

har du en ide til hvordan jeg får den til at skrive 0 i stedet for eks -5

+ Lav gerne svar, så jeg kan give point til dig
Avatar billede nielle Nybegynder
26. september 2007 - 22:19 #5
Sådan er regnereglerne nu engang ;^)

Løsning 1)

Du kan følge op med en UPDATE til:

strSQL = "UPDATE Shop_ItemVersions SET StockCount = 0 WHERE StockCount < 0 AND ID = " & rsStockAuto("Expr5")


Løsning 2)

Du kan lave en betinget udregning:

strSQL = "UPDATE Shop_ItemVersions SET StockCount = IFF(StockCount>=5, StockCount-5, 0) WHERE ID = " & rsStockAuto("Expr5")
Avatar billede nielle Nybegynder
26. september 2007 - 22:19 #6
... og et svar :^)
Avatar billede plx Nybegynder
26. september 2007 - 22:19 #7
UPDATE Shop_ItemVersions SET StockCount = IIF(StockCount-1>0,StockCount-1,0) ...
Avatar billede brownghost Nybegynder
26. september 2007 - 22:29 #8
øhh den her.
strSQL = "UPDATE Shop_ItemVersions SET StockCount = IFF(StockCount>=5, StockCount-5, 0) WHERE ID = " & rsStockAuto("Expr5")

og de 2 fem taller er dynamiske..
Vil den ikke lave lort i det, ergo, der er forskellige tal på siden i StockCount
ergo, når man begynder kan der være 2 på lager
men på ordre trækker men 5
Så vil resultatet ikke være -5 men -2 og så sætter den ikke 0 :(
eller tager jeg fejl.. ?
Avatar billede brownghost Nybegynder
26. september 2007 - 22:34 #9
PS den her gav fejl.
        strSQL = "UPDATE Shop_ItemVersions SET StockCount = IFF(StockCount > =" & rsStockAuto("Expr6") & ", StockCount-" & rsStockAuto("Expr6") & ", 0) WHERE ID = " & rsStockAuto("Expr5")


FEJL: Incorrect syntax near '>'
Avatar billede nielle Nybegynder
26. september 2007 - 22:34 #10
Du skal jo nok slå op hvor mange der er på lager - før at du overhovede forsøger at sælge dem. Det nytter ikke noget at forsøge at sælge 5 hvis der kun er 2.
Avatar billede brownghost Nybegynder
26. september 2007 - 22:36 #11
og fejl iden her også:

strSQL = "UPDATE Shop_ItemVersions SET StockCount = IIF(StockCount-1>0,StockCount-1,0) WHERE ID = " & rsStockAuto("Expr5")

samme sted ved > det vil den sku ikke hummm..
Avatar billede nielle Nybegynder
26. september 2007 - 22:36 #12
Det den viste IFF gør er bare at sikre at der ikke bliver et negativt antal i tabellen. Men det kan der jo egentlig kun blive hvis du forsøger at sælge for mange af dine "dimser".
Avatar billede brownghost Nybegynder
26. september 2007 - 22:39 #13
Du skal jo nok slå op hvor mange der er på lager - før at du overhovede forsøger at sælge dem. Det nytter ikke noget at forsøge at sælge 5 hvis der kun er 2.

det er bare en lager status..
Og en kunde der har bestildt 5 og der kun er 1 på lager, får først sin vare når der er kommet 4 mere på lager.
men de bliver ikke lagt ind i DB når de kommer på lager, der bliver de plugget med det samme fra varene der lige er kommet, ergo, det kan godt lade sig gøre.. og det burdte systemet ikke blande sig i.. der for..

men er okay med at lave det så den kigger om lager status er under 0
hvis det er det så sætter den lige et 0 ind i stedet for det eks -6 der kunne stå.
og det laves som en update mere lige efter den første...

kan bare ikke lige få det til at spille :(
Avatar billede nielle Nybegynder
26. september 2007 - 22:44 #14
Hmmm, jeg synes da at det er naturligt at lagerstatus står til -4 hvis I skylder 4 "dimser" til en kunde?
Avatar billede brownghost Nybegynder
26. september 2007 - 22:51 #15
nej gør vi ikke, kunden fik jo af de vare der lige kom på lager..
der bare ikke er kørt ind i systemet, da når der kommer vare bliver der pakket til alle kunder, der har vare på ordre der ikke er på lager, eller ikke er nok på lager til.

ville jo være dobbelt arbejde at ligge vare på lager taste ind i system.
Der efter finde dem igen, og godkende ordre, bare for at systemet ikke skriver - et eller andet.

Fik testet med en forkert.. det virker nu med den fine løsning du gav mig her :)

Løsning 1)
Du kan følge op med en UPDATE til:
strSQL = "UPDATE Shop_ItemVersions SET StockCount = 0 WHERE StockCount < 0 AND ID = " & rsStockAuto("Expr5")


Så jeg takker og bukker ;)
Avatar billede nielle Nybegynder
26. september 2007 - 22:55 #16
Hvis I ikke lagerføre jeres vare *inden* at I sender dem ud, så er jeg bange for at I hurtigt kan få uorden i jeres lager-antal.

Jeg synes at det virker en smule farligt blot at sætte beholdningen til 0 uden at tænke lidt nærmere over præcis hvor mange vare I har liggende som ikke er på lager endnu og hvor mange I skal have sendt afsted til kunderne...
Avatar billede brownghost Nybegynder
26. september 2007 - 23:00 #17
nej det er ikke.
For som jeg skrev.

en kunde bestiller 5, der er 3 på lager.
System ved det mangler 2 og der bestilles vare hjem, auto.

Der kom kassen ind af døren.
Vi pakker den ud, finder kundes ordre. tager de 3 der er på lager + 2 fra kassen der er kommet fra fabrikken. afsender det til kunde.
Shoppen skriver nu 0 i lager.. Hvor mange er det lige der er på lager ;) 0
Ergo alt passer.

har vi bestilt mere hjem en de 2 han skulle have, bliver de sidst på dagen lagt på lager, og lager 0 bliver opdateret til det antal der ligges på lager.

Status passer med shop og fysisk lager her efter forsat.
Hvor er problemet? ;-D
Avatar billede nielle Nybegynder
26. september 2007 - 23:10 #18
Hvis du kke selv mener at der er noget problem, så er der vel ikke noget.

Jeg ville bare foretrække at lagerføre ting lige så snart at det kommer ind - også selvom de skulle afsted igen med det sammen. Jeg tror egentlig også at jeres revisor foretrækker det på den måde.
Avatar billede brownghost Nybegynder
26. september 2007 - 23:22 #19
nope, er han totalt lige glad med, har  intet med de revisions artige ting at gøre osv..

Nå vi må heller stoppe her. Tak igen for din hjælp og tid ;)
Avatar billede nielle Nybegynder
27. september 2007 - 06:49 #20
Tak for point :^)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester