Frage

Ich habe meine Datenbank eingerichtet als solche:

Jedes Produkt Ich habe hat einen eigenen Tisch, wo es um die Menge verkauften Tonträgern / Transaktion # (also Spalte 1 „transactionID“, Spalte 2 „Menge“)

ex) p-Scratcher (wo p ist ein Hinweis auf "Produkt")

Es gibt auch Tabellen für jedes Jahr, die Datensätze für jede Transaktion halten, die durchliefen. Jede dieser Tabellen enthält die folgenden Spalten: "transactionID", "Datum", "Zeit", "pt_CA", "pt_DB", "pt_VC", "pt_MC", "pt_CH", "pt_AM"

ex) Umsatz 2008 Umsatz 2009 etc. etc.

Ich möchte in der Lage sein, eine einzelne Tabelle zu verweisen, die alle Datensätze für jedes Jahr hält, ohne die SQL für die Tabelle zu ändern, die ein neues Jahr aufzunehmen.

So zum Beispiel, würde ich will alle Transaktionen abfragen für „p-Back Scratcher“, ich will tippen, nicht haben

SELECT sales-2008.date, sales-2009.date 
  FROM sales-2008, sales-2009 
 WHERE sales-2008.transactionID = p-backScratcher.transactionID 
    OR sales-2009.transactionID = p-backScratcher.transactionID

... sondern:

SELECT sales.date 
  FROM sales 
 WHERE sales.transactionID = p-backScratcher.transactionID
War es hilfreich?

Lösung

  

Ich möchte in der Lage sein, eine einzelne Tabelle zu verweisen, die alle Datensätze für jedes Jahr hält, ohne die SQL für die Tabelle zu ändern, die ein neues Jahr aufzunehmen.

Dies ist, warum Sie nicht eine Tabelle pro Jahr und pro Produkt und eine Tabelle verwenden sollten.

Was Sie brauchen, ist ein „Produkt“ Tisch und eine „Transaktion“ Tabelle.

Andere Tipps

In SQL, wie Kyle Antwort Staaten, können Sie erstellen Ansicht , das ist eine Art virtueller Tisch ist, aber ich würde empfehlen, dass Sie ein Buch zu bekommen, oder google, Relationale Datenbank-Design , bevor Sie sich auf eine Datenbankstruktur zu begehen.

Was Sie suchen eine „Ansicht“ bezeichnet wird, was ziemlich viel ist eine gespeicherte Anweisung, die eine Liste der ordnungsgemäß formatiert Ergebnisse ist. Sie können es direkt abfragen, wie es eine Tabelle ist.

Nicht sicher, wie groß das Projekt ist, oder was Ihre spezifischen Anforderungen sind (zum Beispiel, wenn Sie Code haben mit ihm verbunden), aber Sie könnten in der Migration Ihre Daten zu MS SQL (oder MySQL, etc.) zu suchen. SQL Server verfügt über eine Desktop-Edition, die kostenlos ist, sondern unterstützt nur ein begrenztes Feature-Set (Ansichten sind, dass im Lieferumfang enthalten).

MySQL, postgre usw. unterstützen die Funktionen, die Sie suchen, einschließlich geerbt Tabellen in postgre (nicht genau das, was Sie brauchen, aber ähnlich).

Ich habe nicht mit Zugang für eine Weile gearbeitet, und ich bin nicht sicher, dass es unterstützt die Funktionen, die Sie suchen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top