Hejsa

Tags:    databaser

Hejsa.. sidder lig og fumler med en sql sætning.

SELECT Sum(CCur(OrdreArkiv.Pris*[Antal])) AS Produktsalg, DatePart("m",[Dato]) AS ordreMouth, DatePart("yyyy",[Dato]) AS mdr
FROM OrdreHeaderArkiv INNER JOIN OrdreArkiv ON OrdreHeaderArkiv.Id = OrdreArkiv.Ordrenr

GROUP BY DatePart("m",[Dato]), OrdreHeaderArkiv.Dato, OrdreHeaderArkiv.Dato
ORDER BY DatePart("yyyy",[Dato]) DESC , DatePart("m",[Dato]) DESC;

den spytter det rigtige ud og månederne kommer også, men problemet er at de måneder som ikke indeholder noget, som altså er 0, vil jeg også godt ha vist. kan det lade sig gøre eller skal det ske i asp koden og hvordan??



8 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
Prøv at skriv outer i stedet for inner
Er det det du leder efter ?

(¯`·._.·[Brian Hvarregaard]·._.·´¯)



Du kan lave en union hvor du vælger alle dem hvor der er 0.

Mvh. Thomas Lykke Petersen



Du skal lave et "åbent" join, dvs din betingelse skal tillade null værdier.

I Oracle klares det med at sætte et lille + ved den side der skal være "åben", f.eks. tabela.colonnea1 = tabelb.colonneb1 + , hvilket vil tillade at colonneb1 ikke passer med colonnea1 hvis den er null, og null værdier i colonneb1 tabellens rækker kommer med.

Du bruger vel MS SQL så jeg ved ikke hvordan man skriver det der.



Jeg tror ikke der ledes efter et outer join, men blot at tupler med null i nøgle data også kommer med.

Men det kan man måske kun hvis man laver outer joins i MS SQL ?



Ok prøver lige igen:

det jeg får ud af den her sætning er, samlet ordre i en månede og hvilket år og månede det er.
SELECT Sum(CCur(OrdreArkiv.Pris*[Antal])) AS Produktsalg, DatePart("m",[Dato]) AS ordreMdr, DatePart("yyyy",[Dato]) AS mdraar
FROM OrdreHeaderArkiv INNER JOIN OrdreArkiv ON OrdreHeaderArkiv.Id=OrdreArkiv.Ordrenr
GROUP BY DatePart("m",[Dato]), OrdreHeaderArkiv.Dato, OrdreHeaderArkiv.Dato
ORDER BY DatePart("yyyy",[Dato]) DESC , DatePart("m",[Dato]) DESC;

Outer virker ikke, skal bruge et felt til som definere månederne f.eks 2 år tilbage og som viser hvor meget salg der har været i denne månede og hvis intet salg skal værdien have "0". Det er Acces jeg fumler med..





ok er lidt grøn omkring acces, hvor skulle den så placeres? kan jo heller ik hente værdier i de måneder hvor der intet er solgt, skal bruge en slags dato felt som putter sum af ordre ind i den pågældende månede.

[Redigeret d. 03/08-04 15:20:05 af Chris]



Ok nu tror jeg endelig jeg fattede det.

Altså, du har salg i databasen, og det samler du sammen i måneder, men du mangler de måneder hvor der ingen data er (altså intet salg) ?

Det bliver nok lidt svært at klare rent i SQL, med mindre du vil lave en tabel der indeholder alle månederne i først, og så bruge den sammen med den anden, for så har du data for de måneder der ellers mangler data for, og kan se at der er 0 i salg for de måneder.

Har jeg forstået det rigtigt nu ?



JUBIIIIIIIIIIII*GG*

det er rigtigt, ok det lyder som jeg havde frygtet så. nå men tilbage til ASP koderierne... Fortsætter spørgsmålet i asp forumet, har leget lidt med et diagram, som viser netop salg i en månede, men fordi jeg ikke får data ud for nogen måneder går det lidt i kage..





t