webForumDet fria alternativet

Flytta data (komplext)

2 svar · 302 visningar · startad av Gein

GeinMedlem sedan sep. 20005 700 inlägg
#1

Följande tabeller finnes:

Debit(number, sdate, employee, account)
Sale(Debit, item, quantity)
Item(number, price)

Data ska flyttas till:
Transact(number, date, employee, account, amount)

Data ska flyttas från Debit till Transact men sen ska dessutom amount beräknas och föras in. Amount fås genom att för varje debit-nummer (i Debit), hämta varje item som tillhör detta debit-nummer (genom att titta i Sale), kolla vad denna item kostar (i item-tabellen), multiplicera med quantity (från sale) och sedan summera alla dessa värden till ett amount.

Ganska komplext, vi har försökt få in detta i en enda INSERT men det blir väldiga problem, frågan är om det ens är möjligt?
Om ja: Hur ser en sådan fråga ut? Om nej: Vad är bästa sättet att lösa det på?

@ndersMedlem sedan juni 200032 969 inlägg
#2

Det borde gå att göra något sånt härnt:

INSERT INTO Transact (number, date, employee, account, amount)
SELECT d.number, d.sdate, d.employee, d.account, sum(s.quantity * i.price) as amount
FROM Debit as d
INNER JOIN Sale AS s ON d.number = s.debit
INNER JOIN Item AS i ON s.item = i.number
GROUP BY d.number, d.sdate, d.employee, d.account

mvh

GeinMedlem sedan sep. 20005 700 inlägg
#3

Javisst fungerade det! Tackar!

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)