Mik2000 Professor
01. oktober 2020 - 10:52 Der er 3 kommentarer og
3 løsninger

Hent sum

Håber en kan hjælpe med noget SQL

Jeg har en tabel (her forenklet)

Salg
---------
id
totalpris
totalprisMedRabat

I totalpris ligger der altid et beløb
I totalprisMedRabat ligger der et beløb med en rabat hvis der er rabat

Eksempel på data
id: 1
totalpris: 200.00
totalprisMedRabat NULL

id: 2
totalpris: 500.00
totalprisMedRabat 400.00

id: 3
totalpris: 1000.00
totalprisMedRabat 600.00

id: 4
totalpris: 300.00
totalprisMedRabat NULL

Jeg vil nu gerne hente en sum ud som er det der er solgt for
Dvs. jeg skal have summen af totalpris, men de steder hvor totalprisMedRabat ikke er NULL skal den i stedet bruge den

Hvad skal jeg skrive
SELECT SUM() as total FROM Salg

total skulle i eksemplet gerne ende med at blive:
200 + 400 + 600 +300 = 1500 kr

Håber der er en der er god til SQL som kan hjælpe

----------------------------------------------------------------------------

Derudover vil jeg også gerne have hvor meget discount der er givet hvis man kan det (men ovenstående er det vigtigste).
Dvs. de steder hvor totalprisMedRabat er udfyldt skal man minus med totalpris og tage summen

Hvis man kan det skulle resultat gerne ende med
500 - 400 = 100
1000 - 600 = 400
Sum: 100 + 400 = 500
michael_stim Ekspert
01. oktober 2020 - 11:09 #1
Jeg havde nok lavet de udregninger i PHP, hvis det nu er PHP du bruger.
Mik2000 Professor
01. oktober 2020 - 11:26 #2
Det er bare ikke helt nemt fordi det er en sum af mange rækker :)

Så jeg kan få følgende på de 2 tal
Total: 2000
TotalMedRabat: 1000

Men af dem kan jeg ikke udlede de 1500 eller de 500

I ovenstående er der 4 rækker men der kan jo være mange flere - så en løsning hvor man f.eks. henter 2000 rækker ud og looper gennem dem, og plusser dem er ikke en holdbar løsning
Rune1983 Guru
01. oktober 2020 - 11:56 #3
Ikke testet. Men kan du ikke anvende noget ala.

SELECT
SUM(IFNULL(totalprisMedRabat,totalpris)) AS 'total '
FROM Salg
arne_v Ekspert
01. oktober 2020 - 15:14 #4
SELECT SUM(totalpris) AS listepristotal,SUM(COALESCE(totalprismedrabat,totalpris)) AS faktisktotal
FROM salg

i SQL og beregne rabat i applikation ved at traekke de to tal fra hinanden.
arne_v Ekspert
01. oktober 2020 - 15:16 #5
IFNULL virker ligesom COALESCE i MySQL for 2 argumenter, saa mit forslag er stort set det samme som #3.
Mik2000 Professor
01. oktober 2020 - 19:58 #6
Super det virker - mange tak for hjælpen
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

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





Premium
Her er Microsofts planer med Windows for 2021: Pønser på fire nye versioner
Windows 10 vil udkomme i et væld af nye afskygninger i det kommende år. Få overblikket her.
Computerworld
Stein Bagger gør comeback i ny branche: "De lignede et mafiahold, førte sig frem som nyrige og plaprede løs om urealistiske drømme"
Stein Bagger har skiftet navn og fører sig nu frem i store biler i en helt ny branche, skriver en dansk avis.
CIO
Podcast: Her er seks gode råd om ledelse og digitalisering fra danske top-CIO'er
The Digital Edge: Vi har talt med 17 af Danmarks dygtigste digitale ledere - og samlet deres seks bedste råd om digitalisering og ledelse. Få alle rådene på 26 minutter i denne episode af podcasten The Digital Edge.
Job & Karriere
Se Waoos forklaring: Derfor har selskabet fyret topchef Jørgen Stensgaard med omgående virkning
Waaos bestyrelse opsiger fiberselskabets topchef, Jørgen Stensgaard, der fratræder med omgående virkning. Se hele forklaringen fra Waao her.
White paper
Sådan sikrer du hovednøglen til jeres data
80% af alle ransomwareangreb skyldes misbrug af privilegerede brugeradgange. Ved at begrænse og overvåge adfærden på de privilegerede konti samt kontrollere mængden af tildelte rettigheder kan du mindske skaden ved hackerangreb mod din virksomhed og i visse tilfælde helt blokere dem. Internt kan du bruge kontrollen med brugeradgange til at dokumentere, hvem der bevæger sig i hvilke systemer, og hvad der foregår derinde. Privilegeret brugerstyring har de seneste to år stået øverst på Gartners Top10-liste over it-sikkerhedsprojekter, der bør få højeste prioritet. Alligevel er teknologien kun så småt ved at finde fodfæste i Danmark. Det kan viden om åbenlyse gevinster, relativ kort implementeringstid og yderst rimeligt budget være med til at ændre på. I dette whitepaper folder vi temaet privilegeret brugerstyring ud og placerer teknologien i det væld af prioriteringer, som CISO’en hver dag skal foretage.