webForumDet fria alternativet

Plocka ut lagersaldo på alla artiklar i efterhand

Databaser & SQL

0 svar · 509 visningar · startad av wazid

Medlem sedan maj 2001156 inlägg
Frågan#1

Hej

Jag har kämpat länge nu med följande.
Jag har en tabell som innehåller lagerförändringar (MITTRA).
Jag vill få ut vad lagersaldot var vid en viss tidpunkt på alla artiklar. Artikelnr finns i fältet MTITNO.

Med nedanståen får jag ut saldot efter senaste transaktionen före 1/7-04 på en artikel.
Men jag vill få ut det på alla artiklar....

SELECT     TOP 1 MTNSTQ AS [Ing lagersaldo], MTITNO
FROM         dbo.MITTRA
WHERE     (MTTRDT < 20040701) AND (MTITNO = '10990200')
ORDER BY MTITNO, MTTRDT DESC, MTRGTM DESC

Allra helst skulle jag vilja slå samman frågan med den Select som jag byggt för att få ut en massa annan data, och på så sätt få med ingående lagersaldot i samma resultat.
Jag har inte kläm på tankesättet att loopa ut det för varje artikel. (MITBAL.MBITNO )

SELECT     dbo.MITMAS.MMITNO AS Artnr, dbo.MITMAS.MMITDS AS Benämning, dbo.MITMAS.MMUNMS AS Enhet, dbo.MITMAS.MMITTY AS Artikeltyp, 
                      dbo.MITBAL.MBWHLO AS Lagerställe, dbo.MITBAL.MBIDDT AS [Senast in], dbo.MITBAL.MBODDT AS [Senast ut], 
                      dbo.MITBAL.MBINDT AS [Senast invent.], dbo.MITBAL.MBSTQT AS Lagersaldo, dbo.MITFAC.M9UCOS AS Lagerpris, SUM(dbo.MITSTA.MHPUQT) 
                      AS [Inköpt kvant.], SUM(dbo.MITSTA.MHMAQT) AS [Tillverkad kvant.], SUM(dbo.MITSTA.MHSOQT) AS [Såld kvant.], SUM(dbo.MITSTA.MHUSQT) 
                      AS [Förbrukad kvant.], SUM(dbo.MITSTA.MHSTDP - dbo.MITSTA.MHSTDN - dbo.MITSTA.MHNRUS) AS [Invent/Korr kvant.], dbo.MITMAS.MMITCL, 
                      dbo.MITMAS.MMITGR, dbo.EoY_snittpris_mm.snittpris
FROM         dbo.MITBAL INNER JOIN
                      dbo.MITMAS ON dbo.MITBAL.MBITNO = dbo.MITMAS.MMITNO INNER JOIN
                      dbo.MITFAC ON dbo.MITBAL.MBITNO = dbo.MITFAC.M9ITNO INNER JOIN
                      dbo.MITSTA ON dbo.MITBAL.MBITNO = dbo.MITSTA.MHITNO AND dbo.MITBAL.MBWHLO = dbo.MITSTA.MHWHLO INNER JOIN
                      dbo.EoY_snittpris_mm ON dbo.MITMAS.MMITNO = dbo.EoY_snittpris_mm.MMITNO AND dbo.MITBAL.MBITNO = dbo.EoY_snittpris_mm.MMITNO AND 
                      dbo.MITBAL.MBWHLO = dbo.EoY_snittpris_mm.UCWHLO
WHERE     (dbo.MITSTA.MHCYP6 = 200407) OR
                      (dbo.MITSTA.MHCYP6 = 200408) OR
                      (dbo.MITSTA.MHCYP6 = 200409) OR
                      (dbo.MITSTA.MHCYP6 = 200410) OR
                      (dbo.MITSTA.MHCYP6 = 200411) OR
                      (dbo.MITSTA.MHCYP6 = 200412)
GROUP BY dbo.MITMAS.MMITNO, dbo.MITMAS.MMITDS, dbo.MITMAS.MMUNMS, dbo.MITMAS.MMITTY, dbo.MITBAL.MBWHLO, dbo.MITBAL.MBIDDT, 
                      dbo.MITBAL.MBODDT, dbo.MITBAL.MBINDT, dbo.MITBAL.MBSTQT, dbo.MITFAC.M9UCOS, dbo.MITMAS.MMITCL, dbo.MITMAS.MMITGR, 
                      dbo.EoY_snittpris_mm.snittpris
256 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)