Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Summering från olika tabeller

Postades av 2003-03-27 11:58:18 - Thomas Norberg, i forum databaser, Tråden har 7 Kommentarer och lästs av 697 personer

Jag sitter med en Access databas och har ett problem.
Jag har lagt upp en tabell för att hålla koll på inkommand transporter.
I denna tabell har jag ett löpande ID nummer för transporterna (Rowid)och ett Datum fält för inkommande datum(InDate).
Nu sitter jag här och försöker räkna antal transporter per månad.
Om jag använder mig av count får jag summan av alla transporter i hela tabellen.
Men jag vill basera räkningen på datum fältet närmare bestämt räkna per månad.

Jag har även en material tabell kopplat till Transport tabellen där ett material ID är kopplingen (MID). MID är inte ett löpnummer utan inmatade serier beroende vilken typ av material det är. Om jag nu skulle vilja koppla ihop detta till första lösningen tillsammans med en kolumn i Transport som innehåller vikten på varje transport hur gör jag då?
När jag grupperar och därefter kopplar ihop med material tabellen så "drar " jag ju ut svaret på SQL frågan........
Det slutgiltiga resultatet ska bli att jag får fram hur många transporter som varit per/månad plus summa vikten på all material under denna period. Förutom den material serie som har en "2" som första siffra.


Svara

Sv: Summering från olika tabeller

Postades av 2003-03-27 13:44:00 - Ulf Magnusson

Hej.

Om jag förstått dig rätt, ungefär så här kan det se ut :

SELECT COUNT(transport.rowid), SUM(material.vikt)
FROM transport, material
WHERE transport.mid = material.mid
AND material.serie <> 2
AND transport.indate >= '2003-03-01' AND transport.indate <= '2003-03-31'

Osäker på hur datum hanteras i Access, finns säkert någon bra funktion.

/Uffe






Svara

Sv: Summering från olika tabeller

Postades av 2003-03-27 14:11:28 - Thomas Norberg

Så långt har jag också kommit, problemet är att det är fler månader på ett år.
Jag vill ha med andra ord en månadsvis summering av transporter där inte material(MID) är två inräknat.....
Tack på förhand och efterhand


Svara

Sv: Summering från olika tabeller

Postades av 2003-03-27 14:14:09 - Thomas Norberg

Jag har provat skala av (InDate) med year och month oc ställt grupperings kriterierna på de. Men eftersom jag har fler material per månad så "drar" jag ut resultatet så att det blir fler av samma "månad"


Svara

Sv: Summering från olika tabeller

Postades av 2003-03-27 16:07:56 - Jan Bulér

Det här kanske kan vara något för dig.

SELECT Format(transport.InDate,"yyyy-mm") AS TpMonth, Count(transport.RowId) AS Antal, Sum(material.Vikt) AS TotVikt
FROM material INNER JOIN transport ON material.MID = transport.Mid
GROUP BY Format(transport.InDate,"yyyy-mm"), material.MID
HAVING (((material.MID)<>2));

Om inte så kan det underlätta med lite exempeldata på innehållet i dina tabeller transport och material och hur du då vill att det ska presenteras.

//

Janne


Svara

Sv: Summering från olika tabeller

Postades av 2003-03-31 09:49:13 - Thomas Norberg

Jo det har du rätt i . Det underlättar nog om du set tabellerna. Nu har jag även gjort lite modifikationer. Tabellerna ser ut som följer:

MATERIAL
------------
RowID (rad id)
Kod (Materialets Kod i serier med grupperat efter siffror t ex 101,102,103 nästa 201,202,203 o.s.v.)
Name (Materialets Namn)

STOCK_IN
--------------
RowID (rad id)
MID (Koppling till MATERIAL.RowID)
TIID (Koppling till TRANSPORT.RowID)
InDate (Datum då posten registreras i lagret) ex2001-12-01
Weight (Vikten på den posten)

TRANSPORT
---------------
RowID (rad id)
InDate (In datum för inkommande transporter) ex2001-12-01

Det jag har problem med att få ut är detta (det ska bli en sammanställning)

1. Allt ska baseras på hela månader (2001-12, 2002-01, 2002-02 o.s.v.)
2. Jag vill veta antal inkommande transporter per/mån (count(TRANSPORT.RowID)????) månaden som det beräknas på är TRANSPORT.InDate
3. Jag vill veta vikten per material serie per månad t ex 2001-12 serie 100 (MATERIAL.kod) 1200 kg (sum(STOCK_IN.weight)????) månad för månad per material serie.........???????? månaden som detta baseras på är STOCK_IN.InDate.


ex:

Månad Transporter Serie100 Serie 200 Serie 300
--------- ------------- ----------- ----------- ------------
2002-01 5st 200kg 450kg 100kg
2002-02 8st 50kg 650kg 78kg
2002-03 21st 1200kg 1200kg 123kg


Jag vore mycket tacksamm om någon kunde hjälpa mig..........





Svara

Sv: Summering från olika tabeller

Postades av 2003-03-31 12:38:19 - Andreas Hillqvist

Om du anväbder Access kan du göra en korsfråga:

TRANSFORM Sum(STOCK_IN.Weight)
SELECT Year([TRANSPORT].[InDate]) AS År, Month([TRANSPORT].[InDate]) AS Månad, Count(*) AS Antal
FROM TRANSPORT RIGHT JOIN (MATERIAL RIGHT JOIN STOCK_IN ON MATERIAL.RowID = STOCK_IN.MID) ON TRANSPORT.RowID = STOCK_IN.TIID
GROUP BY Year([TRANSPORT].[InDate]), Month([TRANSPORT].[InDate])
PIVOT ([MATERIAL].[Kod]\100)*100;


Jag skulle skapa en grupptabell och ge tabellerna fäljande namn:

Tabell: Groups
Fält: GroupId (Räknare)
Fält: GroupName (Text)

Tabell: Material
Fält: MaterialId (Räknare)
Fält: MaterialGroup (Long) -> Groups.GroupId
Fält: MaterialNumber (Long)
Fält: MaterialName (Text)

Tabell: Stock
Fält: StockID (Räknare)
Fält: StockMaterial (Long) -> Material.MaterialId
Fält: StockTransport (Long) -> Transports.TransportId
Fält: StockInDate (Date/Time)
Fält: StockWeight (Double eller Long)

Tabell: Transports
Fält: TransportId (Räknare)
Fält: InDate (Date/Time)

Du får då unika fältnamn. Vilket underlättar nä rman skriver fråger.

Frågan är om du behöver en in- och ut-tabell för Stock. Det borde ju räcka med posetiva för in och neghativa värden för ut.


Svara

Sv: Summering från olika tabeller

Postades av 2003-03-31 13:53:05 - Thomas Norberg

Tack så mycket precis det jag letade efter.

Men jag får det inte riktigt att funka som jag vill MÀTERIAL.kod är text i databasen och är ju som sagt uppbyggt i serier med en bokstav på slut ex 102a,103b,102b osv...
I Pivotfältet skalade jag av MATERIAL.kod med mid funktionen istället. ALLT frid och fröjd så långt......

Men om jag skalar av serierna så blir det kvar en serie från 1 till 9 och dessa skulle jag villja ha grupperat i privot fältet i tre varianter:

1. Avskalad serie med MATERIAL.kod = 2
2. Avskalad serie med MATERIAL.kod = 3
3. Avskalad serie med MATERIAL.kod som är summa av resten m.a.o. 1+4 till 9.

Går det att fixa med denna variant?
Jag håller på och testar men resultatet blir inget bra.


Svara

Nyligen

  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino
  • 04:14 Vad finns det för kratomalternativ
  • 14:16 Indian online casino
  • 14:15 Indian online casino
  • 08:28 Butiksskyltar: Hur upplever utbude

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 871
27 965
271 770
533
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies