Question

Je ma base de données mis en place en tant que tel:

Chaque produit que je possède sa propre table où il enregistre la quantité vendue / transaction # (si la colonne 1 est « transactionID », la colonne 2 est « quantité »)

ex) p-découpeur (où p est une indication de "produit")

Il y a aussi des tables pour chaque année qui détiennent des dossiers de chaque transaction qui est passée par. Chacune de ces tables tient les colonnes suivantes: "transactionID", "date", "temps", "pt_CA", "pt_DB", "pt_VC", "pt_MC", "pt_CH", "pt_AM"

ex) ventes-2008, les ventes-2009, etc., etc.

Je voudrais être en mesure de faire référence à une table unique qui détient tous les records pour chaque année sans avoir à changer le sql pour la table d'inclure une nouvelle année.

Ainsi, par exemple, je veux interroger toutes les transactions pour « p-découpeur », je ne veux pas avoir à taper

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

... mais plutôt:

SELECT sales.date 
  FROM sales 
 WHERE sales.transactionID = p-backScratcher.transactionID
Était-ce utile?

La solution

  

Je voudrais être en mesure de faire référence à une table unique qui détient tous les records pour chaque année sans avoir à changer le sql pour la table d'inclure une nouvelle année.

Ceci est la raison pour laquelle vous ne devriez pas utiliser une table par produit et une table par an.

Qu'est-ce que vous avez besoin est une table "produit" et une table "de transaction".

Autres conseils

Dans SQL, comme les états de réponse de Kyle, vous pouvez créer un Voir , qui est une sorte de table virtuelle, mais je recommande fortement que vous obtenez un livre, ou Google, conception de bases de données relationnelles , avant de vous engager à une structure de base de données.

Qu'est-ce que vous cherchez est appelée « View » qui est à peu près une déclaration stockée qui est une liste de résultats correctement formatés. Vous pouvez l'interroger directement comme il est une table.

Je ne sais pas comment ce projet est grand ou quels sont vos besoins spécifiques sont (par exemple si vous avez le code associé), mais vous pouvez regarder dans la migration de vos données vers MS SQL (ou MySQL, etc.). SQL Server a une édition de bureau qui est gratuit, mais ne supporte qu'un ensemble limité de fonctionnalités (vues sont inclus dans ce).

MySQL, PostGre, etc en charge les fonctionnalités que vous recherchez, y compris les tables héritées de PostGre (pas exactement ce dont vous avez besoin, mais similaire).

Je n'ai pas travaillé avec accès pendant un certain temps, et je ne suis pas sûr qu'il soutiendra les fonctionnalités que vous recherchez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top