webForumDet fria alternativet
Logga in / Bli medlem

Gruppera efter YYMM från talformat

Databaser & SQL

3 svar · 342 visningar · startad av wazid

Medlem sedan maj 2001156 inlägg
Trådstart#1

Hej

Nedanstående Select är fungerande.
Men jag skulle vilja få till så den grupperade resultatet månadsvis.
Datumet ligger (tråkigt nog) lagrat som decimal.
Vi pratar SQL2000.
Tacksam för lite hjälp....

SELECT 
SUM(Statoil_orderrader_DL.Pris) AS priset, 
SUM(Statoil_orderrader_DL.KVANT) AS antal, 
Statoil_orderrader_DL.Artikelnr, 
Intranet_AS400.dbo.MITMAS.MMITDS, 
Intranet_AS400.dbo.MITMAS.MMITCL 
FROM 
Statoil_orderrader_DL INNER JOIN Intranet_AS400.dbo.MITMAS ON
Statoil_orderrader_DL.Artikelnr = Intranet_AS400.dbo.MITMAS.MMITNO
WHERE 
((Statoil_orderrader_DL.knr_statoil = '"&statoilknr&"') OR
(Statoil_orderrader_DL.knr_statoil = '"&statoilknr_ny&"')) AND 
Statoil_orderrader_DL.Datum BETWEEN " & startdatum & " AND " & stopdatum & " 
GROUP BY Statoil_orderrader_DL.Artikelnr,
Intranet_AS400.dbo.MITMAS.MMITDS, 
Intranet_AS400.dbo.MITMAS.MMITCL 
HAVING (Intranet_AS400.dbo.MITMAS.MMITCL IN ('101', '102', '103', '105 '))

UNION 
SELECT 
SUM(Intranet_AS400.dbo.OSBSTD.UCSAAM) AS priset, 
SUM(Intranet_AS400.dbo.OSBSTD.UCIVQT) AS antal, Intranet_AS400.dbo.OSBSTD.UCITNO,
Intranet_AS400.dbo.MITMAS.MMITDS,
Intranet_AS400.dbo.MITMAS.MMITCL 
FROM Intranet_AS400.dbo.OSBSTD INNER JOIN Intranet_AS400.dbo.MITMAS
ON Intranet_AS400.dbo.OSBSTD.UCITNO = Intranet_AS400.dbo.MITMAS.MMITNO 
WHERE (Intranet_AS400.dbo.OSBSTD.UCCUNO =  '"&kundnr&"') AND
Intranet_AS400.dbo.OSBSTD.UCIVDT BETWEEN " & startdatum & " AND " & stopdatum & " 
GROUP BY Intranet_AS400.dbo.OSBSTD.UCITNO,
Intranet_AS400.dbo.MITMAS.MMITDS, 
Intranet_AS400.dbo.MITMAS.MMITCL
HAVING (Intranet_AS400.dbo.MITMAS.MMITCL IN ('101', '102', '103', '105 ')) 
ORDER BY MMITDS;
Medlem sedan dec. 19996 721 inlägg
#2

På vilket sätt är datumet lagrat som decimal? En Unix-timestamp?

Medlem sedan maj 2001156 inlägg
#3

I de två tabellerna som det finns är det "float" i den ena och "decimal" i den andra.
Det borde givetvis varit annat format, men.....

Medlem sedan dec. 19996 721 inlägg
#4

Jo, men hur är det lagrat? Om man lagrar ett datum som float eller decimal så måste man ha en omvandlingsstrategi. Hur lagras t.ex. "2005-11-21"?

255 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)