Avatar billede kxh Nybegynder
13. oktober 2005 - 07:57 Der er 3 kommentarer og
1 løsning

SQL Forespørgsel

Hej

Jeg har en tabel for følger:

Value  Mat            Vaegt
I    18703708    25.6800
U    16603702    21.8300
U    18633708    31.6600
U    18703708    31.7200
U    16483822    18.1800
U    18633708    31.5200
U    18633708    31.6800
U    18703708    26.5800
U    18633708    30.7800
I    16483822    18.1600

I står for at et materiale er kørt ind på lageret, og u for at det er taget ud, materialet bliver vejet ind og når det tages ud igen, det jeg gerne vil have er en forespørgsel som pr materiale kan vise mig hvor meget der er kørt ind og ud, plus den eventuelle dif der måtte være.

// Kim
Avatar billede ldanielsen Nybegynder
13. oktober 2005 - 09:14 #1
Først, så synes jeg du skal finde en anden måde at registrere om varen kommer ud eller ind. Hvis nu du simpelthen skriver et negativt tal hvis varen bevæger sig ud? Man kan også vælge at have to kolonner, én til ud og én til ind, men det behøves ikke.

Gør blot sådan, én gang for alle:
UPDATE tabellen SET vaegt = vaegt * -1 WHERE vaegt > 0 AND Value = 'U'


Så kan du lave det sådan:

SELECT Mat, SUM(vaegt) AS [ændring i lagerbeholdning] FROM tabellen GROUP BY Mat

og

SELECT Mat, SUM(vaegt) AS [Kørt ind] FROM tabellen WHERE vaegt > 0 GROUP BY Mat
SELECT Mat, SUM(vaegt) AS [Kørt ud] FROM tabellen WHERE vaegt < 0 GROUP BY Mat
Avatar billede kxh Nybegynder
13. oktober 2005 - 09:17 #2
Hej

Jeg har ikke mulighed for at ændre data i tabellen, da det vil kræve at vores levenradør skal ændre deres programmer, derfor skal det være udtræk ud fra det
som vi har i tabellen, desværre da jeg godt kan følge dig.

// Kim
Avatar billede ldanielsen Nybegynder
13. oktober 2005 - 09:25 #3
Så skal det være noget med CASE, hvordan er det nu:

SELECT Mat, SUM(CASE WHEN Value = 'I' THEN vaegt ELSE vaegt * -1 END) AS [ændring i lagerbeholdning] FROM tabellen GROUP BY Mat

osv
Avatar billede ldanielsen Nybegynder
13. oktober 2005 - 09:26 #4
- det skal nok være:

... GROUP BY Mat, Value
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