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
Coloplasts it-direktør: GDPR har givet de it-kriminelle et nyt værktøj til at angribe os
Interview: Det er ikke kun på plads og kapacitet, at sundhedssektoren lige nu er udfordret. De sikkerhedsansvarlige har også fået en del mere at se til gennem et kaotisk 2020. "Cyberkriminelle har opdaget, at der er en hel masse værdi i denne her datatype. Enten som afpresningsmulighed eller som viden, de kan udnytte til noget," siger CIO i Coloplast, René Rasmussen. Læs første artikel i serien om perspektiver fra sektoren, der er de it-kriminelles nye guldkalv
Computerworld
Bill Gates har en løsning: Sådan undgår vi klimakatastrofen
Klumme: Bill Gates vil gerne redde verden. Intet mindre. Og som alle store it-folk regner han baglæns. Politikerne er mest optaget af, hvad der kan lade sig gøre, og hvad de kan skabe flertal for. Men Bill Gates har set på klimakatastrofen, og hans budskab er klart.
CIO
Har du rost din mellemleder i dag? Snart er de uddøde - og det er et tab
Computerworld mener: Mellemledere lever livet farligt: Topledelsen får konstant ideer med skiftende hold i virkeligheden, og moden går mod flade agile organisationer. Men mellemlederen er en overset hverdagens helt med et kæmpe ansvar. Her er min hyldest til den ofte latterliggjorte mellemleder.
Job & Karriere
IBM Danmark trækker tilbud om frivillige fratrædelser tilbage for stort antal ansatte: "IBM har taget røven på sine ansatte"
Som led i IBM Danmarks store fyringsrunde fik 130 ansatte grønt lys til at forlade selskabet på en frivillig fratrædelsesordning. Men nu har IBM Danmark trukket det oprindelige tilbud tilbage for størstedelen af de ansatte.
White paper
Benefits of Automating P2P Processes
Purchasing and accounting departments are under constant pressure to boost efficiency. An ever-increasing number of processes to be managed; vacancies that cannot be filled; rising compliance demands: these are just some of the reasons why already heavy workloads keep growing. However, digitalizing and automating operational business processes can help reduce these workloads considerably. And when repetitive manual tasks such as data entry are eliminated, employees are freed up to focus on more challenging tasks. This white paper will outline just which tasks can be automated in purchasing and accounts payable departments in SAP ERP environments, from issuing purchase requisitions to filing invoices in line with auditing standards. We will describe how daily operations in Purchasing and Accounting are changing, as well as the benefits that automation offers.