Hallo ich habe für Access 2003 ein paar Fragen.
Ich habe verschiedene durchgehende Tabellen mit Daten von 2009 bis heute.
Diese Tabellen sehen alle so aus:
Kunde / Kundennummer / ArtikelNr / Liefermenge / Einzelpreis / Gesamtpreis_Brutto / Üebergabe_Lieferung
Maier 2313 1003 5 10 50 13.02.2011
Ich kann daraus die Gesamtkosten, die Anzahl von Bestellungen, die Anzahl gelieferter Artikel, durchschn. Kosten pro Bestellung ... auswerten.
Nun möchte ich aber eine Quartalsauswertung der Kosten haben.
Ich habe die Abfrage jetzt so gelöst:
"SELECT Sum(Tabelle.Gesamtpreis_Brutto) AS Kosten
FROM Tabelle
WHERE (((Tabelle.ÜEBERGABE_LIEFERUNG)>#12/31/2010# And (Tabelle.ÜEBERGABE_LIEFERUNG)<#4/1/2011#));
=> daraus entsteht die Abfrage "Kosten 11_I" also die Kosten des ersten Quartals 2011.
Als Abfrage für die Quartalskosten:
"SELECT "2010 IV" AS Quartal, ROUND([Kosten 10_IV].Kosten, 0) & ' €'
FROM [Kosten 10_IV]
UNION SELECT "2011 I" As Quartal, ROUND([Kosten 11_I].Kosten, 0) & ' €'
FROM [Kosten 11_I];"
So zeigt er mir die Kosten für gewünschten Quartale an.
Diese Abfrage kann ich Nutzen um die Kosten der vergangenen Quartale als Liniendiagramm anzeigen zu lassen.
Nur leider finde ich diese Methode relativ aufwendig, da ich über 50 verschiedene Tabellen habe.
Ich möchte für jede Tabelle eine DB anlegen, in der ich mir die Kosten der letzten Quartale anzeigen lassen kann,
und dies natürlich mit möglichst geringem Aufwand.
Das Ganze soll dann mit einem Diagramm visualisiert werden.
Hat hier jemand eine Idee wie das mit möglichst geringem Aufwand erfolgen kann?
Und noch eine zweite Frage, ich möchte die Gesamtkosten und den Verlauf der Quartalskosten in einer Datenbank für alle 50 Tabellen angezeigt bekommen. Leider weiss ich nicht wie ich die Diagramme in eine DB exportieren kann, so dass Sie auch korrekt angezeigt werden und sich selber aktualisieren.
Vielen Dank
Edit:
Und noch zwei Fragen die mir einfallen.
1) Bei der SQL Auswertung der einzelnen Quartalskosten bräuchte ich noch ein Feld in dem ich die Prognose eingebe.
2) Ich würde gerne eine Abfrage haben, die mir anzeigt welche Artikel überproportional oft (+/- 10%) vom Durchschnittsverbrauch abgerufen wurden. Geht so was überhaupt?
Zitatda ich über 50 verschiedene Tabellen habe.
Kann es sein, daß dies eine unstrukturierte DB ist? Müßte dies nicht eine Tabelle sein?
Wenn 50 Tabellen, dann gibt es wahrscheinlich richtige Fleißarbeit. Haben die Tabellennamen hoffentlich einen strukturieten Bezug? Beispiel: Tabelle1 bis Tabelle50
Hallo,
über 50 Tabellen sind sehr ungewöhnlich. Was sind das für Tabellen?
Für jede Tabelle eine DB ist einfach gesagt Blödsinn.
Jedes Quartal als eigene Abfrage ist unnötig. Hier kannst du auch mit eine Parameterabfrage auskommen
[von] und [bis] als Selektion. Bevor jetzt alle Profis schimpfen:
Besser ist es ein Formular zu machen und über das Formular die Selektionsbegriffe vorzugeben und
von da die Auswertungen zu starten.
Ich habe aber das Gefühl das hier jemand Acc als Excel zu benutzen und nicht mal ein Ebene 1 eine
Normalisierung der Daten gemacht wurde.
Wir erwarten jetzt deine Fragen bzw. Erklärungen
Gruß
Johann
Das hat schon seine Richtigkeit.
Jede dieser Tabelle (um die 20.000 Werte) beinhaltet einen anderen Vertrag mit komplett anderen Produkten.
Für jeden dieser Rahmenverträge soll eine Auswertung erfolgen.
Daher die DB für jeden Rahmenvertrag.
Natürlich ist das viel Arbeit, daher auch der Versuch dies möglichst früh einfach zu strukturieren.
Wie mach ich mit SQL/Entwurfsansicht diese Parameterabfrage?
Naja so wirklich ein Grund warum so viele Tabelle erschließt sich mir nicht.
Aber was solls. Wenn du gern kopierst und einfügst ist das ja deine Sache.
Im Entwurf der Abfrage hast du ja die Zeile Selektion.
Jetzt kann du in [] schreiben was als Parameter beim Ausführen der Abfrage eingegeben werden soll.
Dabei ist alles was in eine Zeile steht mit UND verknüpft und was in mehrere Zeilen steht mit ODER
Der Ausdruck in Klammer muss den Vorgaben für Feldnamen entsprechen z.B [bitte von Datum eingeben].
Gruß
Johann
Hallo,
Zitat von: BarMa am September 01, 2011, 16:11:18
Das hat schon seine Richtigkeit.
Jede dieser Tabelle (um die 20.000 Werte) beinhaltet einen anderen Vertrag mit komplett anderen Produkten.
Für jeden dieser Rahmenverträge soll eine Auswertung erfolgen.
Daher die DB für jeden Rahmenvertrag.
Ich möchte die Notwendigkeit von 50 Tabellen bezweifeln. Ich glaube auch nicht, dass es möglich ist hier eine Abfrage zu erstellen die das gewünschte Ergebnis zeigt. Mit einer solchen nicht Datenbankgerechten Struktur kommt Access nicht zurecht.
Die Daten sollten in einer Tabelle vorliegen mit einem Fremdschlüssel zum Produkt und einem Fremdschlüssel zum Vertrag. Eine Tabelle gibt dann 50x20000 Datensätze = 1.000.000 DS, was für eine Auswertung kein Problem darstellt.
ZitatDaher die DB für jeden Rahmenvertrag
Und da meinst Du bestimmt eine Tabelle je Rahmenvertrag, oder willst Du 50 DBs machen?
Zitatdaher auch der Versuch dies möglichst früh einfach zu strukturieren
Mit Tabelle oder gar DB je Rahmenvertrag geht dieser Schuss garantiert nach hinten los.
Das bemerkst Du vielleicht schon an Deinem eingangs genannten Problem. Mit einer falschen Datenmodellierung wird es viele weitere geben, z.B. jenes, dass sich potentielle Antwortgeber nicht auf diese besondere Kreativität einstellen können oder wollen.
MfGA
ebs
Ok dann nochmal weiter vorne ansetzen.
Ich habe 50 Tabellen aus verschiedenen Verträgen, in denen die Feldern gleich sind.
Jede Tabelle beinhaltet verschiedene Produkte für verschiedene Rahmenverträge.
Ziel ist eine Auswertung eines Rahmenvertrages und dafür habe ich eine Datenbank erstellt,
folglich muss ich 50 Datenbanken erstellen.
Als Beispiel die Auswertung welcher Artikel aus dem jeweiligen Rahmenvertrag der Topseller war.
Verstehe ich das jetzt also richtig, das ich hierfür eine Datenbank generieren soll,
in die ich alle 50 Tabellen packe.
Aus meiner Sicht wird das dann sehr unübersichtlich oder gibt es die Möglichkeit Ordner im Punkt Abfragen zu erstellen?
Hallo,
Zitaterstehe ich das jetzt also richtig, das ich hierfür eine Datenbank generieren soll,
in die ich alle 50 Tabellen packe.
Nein, das hast Du falsch verstanden.
Eine Datenbank mit
einer Tabelle. Dies Tabelle muss ein Feld zum Vertrag und ein Feld zum Produkt haben. Access kann die 50 Tabellen nicht in der gewünschten Art auswerten. Access erwartet eine normalisierte Struktur mit einer Tabelle. Diese eine Tabelle enthält dann ca. 1.000.000 Datensätze, was aber kein Problem darstellt. Mit dieser Tabelle kannst Du erst die Auswertungen machen. Selbst wenn Du jetzt 50 Tabellen anlegen würdest, müsstest Du mit eine 50 fachen Union Abfrage auch wieder eine Tabelle erzeugen, damit Du auswerten kannst.
Es wäre ratsam, wenn Du Dich mit den Grundlagen einer relationalen DB beschäftigen würdest, damit Dir diese Zusammenhänge klar werden.
Zitat von: MzKlMu am September 02, 2011, 09:26:01
1) Access kann die 50 Tabellen nicht in der gewünschten Art auswerten.
2) Es wäre ratsam, wenn Du Dich mit den Grundlagen einer relationalen DB beschäftigen würdest, damit Dir diese Zusammenhänge klar werden.
Die Aussage 1) ist die Antwort die ich wollte
Für 2) Die grundlegenden Kentnisse sind vorhanden, leider ist so eine Mastertabelle nicht zu realisieren,
da es sich hierbei um verschiedene Lieferanten handelt.
Danke
Hallo,
Zitatleider ist so eine Mastertabelle nicht zu realisieren, da es sich hierbei um verschiedene Lieferanten handelt.
Doch, kannst Du, die Tabelle muss noch die Lieferantennummer (oder ein ähnliches
eindeutiges Feld) enthalten und schon kannst Du wie gewünscht auswerten.
Zitat von: Jonny am September 01, 2011, 15:50:07
Jedes Quartal als eigene Abfrage ist unnötig. Hier kannst du auch mit eine Parameterabfrage auskommen
[von] und [bis] als Selektion. Bevor jetzt alle Profis schimpfen:
Kann ich das bitte mal als Beispiel in SQL haben?
Danke
Hallo,
auch für die Lösung von Jonny brauchst Du eine einzige Tabelle um auswerten zu können. Also entweder gleich alles in einer Tabelle oder mit 50facher Union erst eine Tabelle erzeugen. Erst dann kannst Du die Parameterabfrage nutzen.
Ok ok ich werde dieses Thema näher in Betracht ziehen!
Meine Auswertungen beinhaltet Themen wie Top10 Produkte, Top10 Kunden ...
Ich habe so um die 30 Abfragen pro Tabelle, das wären dann ja 1500 Abfragen in einer Datenbank.
Ich habe aber etwas Angst, dass diese Datenbank dann sehr unübersichtlich wird.
Hallo,
ZitatIch habe so um die 30 Abfragen pro Tabelle, das wären dann ja 1500 Abfragen in einer Datenbank.
Du hast es immer noch nicht verstanden. Du hast doch nur dann
eine Tabelle, also hast Du 30 Abfragen und keine 1500. Über die Gruppierungsfunktionen kannst Du dann mit der
einen Tabelle die alle Datensätze enthält (50x20000=1.000.000 DS) die gewünschten Darstellungen erreichen.
Zitat von: MzKlMu am September 02, 2011, 10:51:22
Du hast es immer noch nicht verstanden.
Doch generell schon, aber ich möchte einen Bericht für jeden Rahmenvertrag erstellen.
Gut deine Anmerkung führt dann dazu, dass ich eben nicht für jeden Vertrag einen Bericht vorliegen habe,
sondern nur auf Abfrage einen erstelle.
Das ist die Gedankengang der mir noch gefehlt hat.
Multo Benne
Hallo,
Du brauchst einen Bericht. Dieser bassiert auf einer Abfrage. In der Abfrage kannst Du per Parameter einen bestimmten Rahmenvertrag auswählen und dann nur diesen einen darstellen.
Du kannst auch in einem Formular mit einem Kombifeld alle Rahmenverträge anzeigen. Ein Klick in das Kombi öffnet dann den passenden Bericht.
Noch mal ganz deutlich: Du brauchst nur einen einzigen Bericht den Du dann entsprechend einschränkst.
JA die Message ist angekommen, so nun aber die anderen Probleme.
Wie erstelle ich den eine einfache Quartalsabfrage ?
Hallo,
hast Du ein Datum zur Bestimmung des Quartals in der Tabelle?
Oder wie sonst liegt das Quartal vor?