Avatar billede centauri Nybegynder
13. oktober 2004 - 10:07 Der er 8 kommentarer og
2 løsninger

Tælle felter sammen

Jeg er stødt ind i et lille problm med min database, kan efterhånden god mærke det er ved at være lange sidne man har rodet med SQL, men mit problem er følgende.
Jeg har en database kaldt [VARE]
Den indeholder felterne ID,EANNr,ELNr,Beskrivelse,Antal,Placering,Pris

I databasen ligger der så en masse vare. Men nogle vare kan gå igen det det er placert forskellige steder via Placering.

Nu er det så jeg skal have lavet et udskift at alle vare databasen indeholder og ønsker så ikke at den samme vare kan stå flere gange på listen. For så forsvinder overblikket af det hele.

Så mit spørgsmål er så kan det lade sig gøre i en SQL streng at udskrive alle varene i databasen således at hvis en vare findes flere gange ligger det bare det Antal samme der er af de vare så den kun står en gang på listen med det samlede antal.

Kan i sin tid huske der vare noget med en Select i en Select, men synes bare ikke lige jeg kan få det hen.

Håber der er nogle her der kan løse problemet.
Avatar billede idle Nybegynder
13. oktober 2004 - 10:12 #1
hvis varerne har samme varenummer kan du lave sådan en her:

SELECT ID, sum(Antal) FROM Vare GROUP BY ID
Avatar billede mountmedia Nybegynder
13. oktober 2004 - 10:26 #2
SELECT ID, COUNT(*) FROM VARE
GROUP BY ID
HAVING COUNT(*) > 1
Avatar billede centauri Nybegynder
13. oktober 2004 - 12:44 #3
Det løser ikke lige mit problem.
Det er EANnr der går igen og på det der skal ckeckes om det går igen og i så fald ligge Antal sammen med de andre Antal der findes af den vare.

Og de skal udskirves som en samlet liste der indeholder
EANnr,ELnr,Beskrivelse,Pris
Avatar billede arne_v Ekspert
13. oktober 2004 - 12:51 #4
Du kan godt lave:

SELECT EANnr,ELnr,Beskrivelse,Pris,SUM(Anral)
FROM  Vare
GROUP BY EANnr,ELnr,Beskrivelse,Pris

men du får problemer hvis pris ikke er ens !
Avatar billede centauri Nybegynder
13. oktober 2004 - 12:59 #5
Det var lige det der skulle til. Men priserne vil altid være ens så burde ikke blive noget problem.

Men vil man ikke også kunne lave det i noget med en Select i en Select statement og på den måde undgå det skulle være problemer hvis Beskrivelse og pris ikke ville være ens, selvo det ikke kunne blive tilfældet ihverfald med Prisen. Men bar for at være på den sikre side.
For beskrivelsen kan muligvis godt andre sig da den gliver trukket ud fra leverandørens vare database.
Avatar billede arne_v Ekspert
13. oktober 2004 - 13:04 #6
Jo du bør kunne lave:

SELECT EANnr,SUM(Antal)
FROM  Vare
GROUP BY EANnr

og joine resulatet af den med noget andet.

Men jeg er ikke sikker på at du er så meget bedre stillet ved det.
Avatar billede centauri Nybegynder
13. oktober 2004 - 13:26 #7
Ja ok jeg må bare nøjes med det andet så, så må de overleve at der måske kan være en vare der kommer til at stå flere gange på listen.

Så må du hellere lige oprette et svare så du kan få pointene :-)
Avatar billede arne_v Ekspert
13. oktober 2004 - 13:31 #8
svar

NB: Mit svar bygger jo faktisk kun oven på idles kommentar !
Avatar billede idle Nybegynder
14. oktober 2004 - 10:54 #9
:-)

Nu ved jeg ikke med arne_v, men jeg ikke påstå at der var for 150 points nytænkning i mit svar, så hvis du smider en lille sjat til mig og arne_v og tager resten selv, så ville det være helt ok med mig...
Avatar billede centauri Nybegynder
15. oktober 2004 - 12:01 #10
Nej men stod og skulle bruge et svar meget hurtigt og så hjælper det jo gerne at sætte en del point af :-)
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