Avatar billede peterlang Nybegynder
23. maj 2004 - 13:17 Der er 9 kommentarer og
1 løsning

Lager ikke under 0

Hej

kan man i samme update sætning gøre at lageret ikke kan blive under 0.

UPDATE varer SET lager=lager-" & fralager & " WHERE id=5

5-3=2
5-8=0

Peter Lang
Avatar billede arne_v Ekspert
23. maj 2004 - 13:30 #1
UPDATE varer SET lager=MAX(0,lager-" & fralager & ") WHERE id=5

vil gøre det.

Men jeg synes at det er den forkerte måde at gøre det. Du bør kunne detecte
det og generere en fejl.
Avatar billede terry Ekspert
23. maj 2004 - 13:31 #2
this may be a silly question, but why should you allow that?
Avatar billede terry Ekspert
23. maj 2004 - 13:32 #3
I agree Arne :o)
Avatar billede peterlang Nybegynder
23. maj 2004 - 13:44 #4
Hej tak for hjælpen

Det er til et butikssystem.
Hvis lager kan blive under 0, går der kludder i lagerstyringen, når der bliver sat varer på lager igen.

Peter Lang
Avatar billede arne_v Ekspert
23. maj 2004 - 13:47 #5
Det er vi helt enige om.

Men det er bare meget uheldigt hvis en det at man i lager systemet fjerner
8 stk hvor der kun er 5 stk på lager ikke får en fejl. Der er jo noget alvorligt
galt.
Avatar billede terry Ekspert
23. maj 2004 - 13:52 #6
and how can you give a customer 8 apples when you only have 5 :o)
Avatar billede peterlang Nybegynder
23. maj 2004 - 14:02 #7
Vi prøver at få Lager til at passe, men bare i løbet at et par månder er der ting der ikke passer helt..  feks. en ekspident der glemmer at trække en vare retur ved  vareombytning. o.s.v.

Der er jo et kassesysten, så det skal bare køre, ikke noget med nogle fejl-meddelser.

Lageret bliver genoptalt ca. hver 3 månded.

Peter
Avatar billede peterlang Nybegynder
23. maj 2004 - 14:19 #8
Jeg får en fejl meddelse når jeg prøver med:

UPDATE varer SET lager=MAX(0,lager-" & fralager & ") WHERE id=5

"The MAX function requires 1 arguments"

Peter Lang
Avatar billede arne_v Ekspert
23. maj 2004 - 14:39 #9
Sorry - jeg snorksover - sådan virker MAX i alle programmerings sprog men ikke i SQL

UPDATE varer SET lager=CASE WHEN lager-" & fralager & " < 0 THEN 0 ELSE lager-" & fralager & " WHERE id=5
Avatar billede peterlang Nybegynder
23. maj 2004 - 16:08 #10
Jep, så virker det...

der manglet et "END"

UPDATE varer SET lager=CASE WHEN lager-" & fralager & " < 0 THEN 0 ELSE lager-" & fralager & " END WHERE id=5


Peter Lang
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
Kategori
Computerworld tilbyder specialiserede kurser i database-management

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