Jah har slagit ihop två tabeller och vil summera på postionen se Du har inte IDnr från tabell 1 med i Tabell 2? Är det alltid de 4 första tecknen? Det blev inte rätt det som jag vill bara igentligen är att om jag har en tabell så här I sådana fall borde det bli såhär: Du skrev:total summering på 4 st positioner i sql databas
Tabell 1 Tabell 2
Idnr orderram id belopp
1234 50 000:- 123400 2 000:-
1235 150 000:- 123401 5 000:-
123500 10 000:-
så när jag slår samman tabellerna så får jag värden så här
idnr orderram belopp totalt kvar
1234 50 000:- 50 000:-
1235 150 000:- 150 000:-
123400 2 000:- -2 000:-
123401 5 000:- -5 000:-
123500 10 000:- -10 000:-
men då blir det fel jag vill få ut datan på detta vis alltså summera på 4 tecken i tabellen
idnr orderram belopp totalt kvar
1234 50 000:- 7 000:- 43 000:-
1235 150 000:- 10 000:- 140 000:-
Mvh Kalle
Sv: total summering på 4 st positioner i sql databas
dvs:
Tabell2:
IDnr ID1 belopp
123400 1234 2000
123401 1234 5000
Då hade det blivit lättare.
/ClasseSv: total summering på 4 st positioner i sql databas
I sådana fall borde det bli såhär:
SELECT id, SUM(orderram) AS orderram, SUM(belopp) AS belopp, SUM(orderram-belopp) AS totaltkvar
FROM (
SELECT Idnr AS id, orderram, 0 AS belopp FROM Tabell1
UNION ALL
SELECT SUBSTRING(id, 1, 4) AS id, 0 AS orderram, belopp FROM Tabell2
)
GROUP BY id
JohanSv: total summering på 4 st positioner i sql databas
Idnr Belopp
12345 50:-
12349 75:-
12350 100:-
så vill jag summera på dom fyra första positionerna så svaret blir
1234 125:-
1235 100:-
Mvh KalleSv:total summering på 4 st positioner i sql databas
SELECT SUBSTRING(idnr, 1, 4) AS Idnr, SUM(Belopp) AS Summa FROM tabell GROUP BY SUBSTRING(idnr, 1, 4)
JohanSv: total summering på 4 st positioner i sql databas
jag vill få ut datan på detta vis alltså summera på 4 tecken i tabellen
idnr orderram belopp totalt kvar
1234 50 000:- 7 000:- 43 000:-
1235 150 000:- 10 000:- 140 000:-
Nedan ger det resultatet.
<code>
SELECT
LEFT(CAST(a.Idnr AS varchar(10)), 4) AS idnr,
a.orderram,
SUM(b.belopp) AS belopp,
a.orderram - SUM(b.belopp) AS [totalt kvar]
FROM Tabell1 a
INNER JOIN Tabell2 b ON LEFT(CAST(a.Idnr AS varchar(10)), 4) = LEFT(CAST(b.id AS varchar(10)), 4)
GROUP BY LEFT(CAST(a.Idnr AS varchar(10)), 4), a.orderram;
</code>
UPPDATERING!!
OBS!! jag har förutsatt att Idnr och id är numeriska, därav castningen.
Skulle dom inte vara det så ta bara bort CAST().