Avatar billede learner Praktikant
11. januar 2012 - 13:26 Der er 11 kommentarer og
1 løsning

kan man: products_ordered = round(products_ordered/5)

Hej jeg vil gerne gøre følgende:

update product_table set products_ordered = round(products_ordered/5)

er det korrekt at skrive det sådan?
hvis nej hvordan skal jeg skrive det?

Det skal bruges til at løse et problem der er med en shops mest købte produkter skal være nutidig, og derfor skal nyeste produkter også have en chance for at klatre op og blive best seller. De gamle produkter i shoppen har jo solgt mange flere pga lang levetid. Jeg påtænker mig at fyre denne af en gang om måneden gennem et cronjob.
Avatar billede michael_stim Ekspert
11. januar 2012 - 13:38 #1
Så er måden at gøre det på, vel at tage antal solgte produkter pr produkt, fra dags dato og et antal dage tilbage, eller?

I mine øjne er mest solgte produkt alligevel det produkt der har solgt mest, uanset hvor lang tid det har været på.

Så kunne man måske have mest solgte i denne uge, måned, år eller hvad man nu vil.
Avatar billede learner Praktikant
11. januar 2012 - 13:52 #2
det er desværre ikke muligt, men god ide :o)

jeg vil gerne have feedback om hvordan man skriver den sql query
Avatar billede michael_stim Ekspert
11. januar 2012 - 14:08 #3
I princip ja, men det kommer jo også lidt an på hvad du har i tabellen.

Det din forespørgsel gør, er at: dividere products_ordered med fem og afrunder.
Avatar billede michael_stim Ekspert
11. januar 2012 - 14:09 #4
Og test nu bare på én post, før du kører hele lortet, hvis du ikke har et udviklings- eller testmiljø.
Avatar billede michael_stim Ekspert
11. januar 2012 - 14:10 #5
Men fatter ikke idéen med at dividere med 5?
Avatar billede michael_stim Ekspert
11. januar 2012 - 14:12 #6
Produktplacering  antal
1                30
2                20
3                10

deler du antal med 5, bliver placeringen den samme.
Avatar billede michael_stim Ekspert
11. januar 2012 - 14:20 #7
#2

Og hvorfor er det ikke muligt. Kan du skrive: update product_table set products_ordered = round(products_ordered/5)

Kan du vel også skrive: SELECT SUM(products_ordered) FROM product_table WHERE dato BETWEEN nu AND nu-30 GROUP BY.... osv.
Avatar billede learner Praktikant
11. januar 2012 - 15:27 #8
Pyh det bliver lidt hot herinde nu :o)

Tak for feedback først.

Grunden til jeg dividerer med 5 er, at det er en helt enkel måde at gøre forspringet mindre på. Hvis nu fx der er solgt
100 is (et gammelt produkt)
10 kager
5 smør (et nyt produkt)

så produkterne beholder is sit forspring, men det bliver relativt mindre med tiden. resultat:
20 is (et gammelt produkt)
2 kager
1 smør

det er selvfølgelig ikke helt optimalt, men fungerer fint nok til mig
Avatar billede learner Praktikant
12. januar 2012 - 18:07 #9
okay kan I bekræfte at man kan skrive flg i en sql query :o)
products_ordered = round(products_ordered/5)

ja eller nej?
Avatar billede michael_stim Ekspert
12. januar 2012 - 19:51 #10
Syntaxmæssigt ja.
Avatar billede learner Praktikant
12. januar 2012 - 20:34 #11
okay mange tak michael :o)

Så er jeg godt tilfreds og takker for hjælpen til Jer alle.

smid gerne svar
Avatar billede michael_stim Ekspert
12. januar 2012 - 21:32 #12
Accepter selv dit svar. Samler ikke.
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