Avatar billede bigo Nybegynder
04. maj 2012 - 10:47 Der er 3 kommentarer og
1 løsning

summere og samle tabel

Hejsa.

Jeg har en table uden indexes - og det vil jeg gerne have ;-)

den indeholder 3 felter - a_id, l_id og antal - hvor der kan være samme kombinationer af a_id og l_id igennem tabellen.

Jeg vil gerne have det samlet så der kun er en række med a_id og l_id med summen af antal - men naturligvis kun der hvor a_id og l_id er ens.

Nogen der har en simpel sql til det..

(det er sikkert nemt når det kommer frem - men jeg bryder mit hovede lige nu ;-)) Og gider ikke lave php kode for noget jeg ved sql kan...

-- Lars
Avatar billede erikjacobsen Ekspert
04. maj 2012 - 11:30 #1
Prøv

  SELECT a_id,l_id,sum(antal) as s FROM dintabel GROUP BY a_id,l_id

Det har så ikke lige noget med indexer at gøre...
04. maj 2012 - 12:02 #2
Jeg forstod spørgsmålet således, at de overflødige rækker skulle fjernes fra tabellen, således at hvis der for eksempel i tabellen var tre rækker med a_id = 2 og l_id = 5 med henholdsvis antal = 12, 13, og 14, så skulle de tre rækker erstattes af en enklelt række med a_id= 2, l_id = 5, og antal = 39.

Det fandt jeg denne løsning på:

CREATE TABLE dintabel2 SELECT DISTINCT a_id, l_id, SUM(antal) FROM dintabel GROUP BY a_id, l_id;

Der bliver således oprettet en ny tabel dintabel2 med det samme data som dintabel undtagen at rækker med samme a_id og l_id bliver samlet med summen af antal.
Avatar billede bigo Nybegynder
04. maj 2012 - 14:18 #3
Jeps.. Den er i vinkel Christian.
Smid et svar.
04. maj 2012 - 15:53 #4
Svar fra mig.
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