Maintenant, les enfants, une question à la fois!
L'éternel Débutant - Entrée de Journal #7.1
Cet article est d'abord paru sur http://www.undu.com
Normalisée de données est grande. Une instance de la personne donnée, et de ne jamais conserver des données qui peuvent être extrapolées à partir des autres données à la volée. Maigre, moyenne et, occasionnellement, un gigantesque douleur.
Un client m'a posé une question simple. Peut-on y voir un rapport d'inventaire de seulement les pièces qui appartiennent à l'une des matières premières du groupe qui a plus d'une partie? Ceci permettrait une meilleure écoute de l'ensemble des besoins de matières premières à long terme. (Nous avons Min/Max et sur Demande automatique de l'achat des matières premières drapeau rouge des listes déjà. Ils voulaient voir la vue globale de l'utilisation multiple des matières premières)
Simple. Je vais demander à la base de données d'inventaire pour toutes les parties où le RMG (Matières Premières code de Groupe) a plus d'une instance. Dans le Paradoxe, je ferais un CALC COMPTER TOUTES les requêtes sur le RMG, puis une deuxième requête demandant pour tous les enregistrements dans la base de données d'Inventaire qui sont dans la réponse temporaire de la table. Paradoxe serait nettoyer la table de réponse à mon être fini avec elle. L'ensemble de codage de l'exercice serait trivial.
Mais comment le faire en SQL Local en utilisant le même Paradoxe des bases de données de Delphi? Une réponse qui a FAIT un travail était de faire les mêmes requêtes que ci-dessus, mais j'ai eu à prendre soin de créer la réponse de la base de données dans la vraie vie, puis le supprimer après le fait. Répugnant. D'ailleurs, n'était-il un moyen de faire cela dans une super instruction SQL? Quelque chose au sujet des instructions imbriquées?
C'est un mensonge des gens. Imbriquée SQL ne semble pas fonctionner SQL Locales réalisées sur les tables Paradox. Après quelques tête-battant, j'ai admis la défaite et se sont dirigées vers le Tamarack site de recherche (developers.href.com) et a commencé la recherche. J'ai fait deux recherches avant, j'ai trouvé la sagesse d'un Steve Koterski de Borland. Il semble qu'il est le SQL wiz. En extrapolant à certaines de ses réponses et de tester un peu, j'ai découvert une belle, propre solution au problème. Et cette solution a d'autres applicabilité si vous continuez à utiliser Paradoxe de bases de données dans vos applications.
tout d'Abord, j'ai créé un fichier SQL appelé 'CountRMG.SQL'. C'est l'équivalent de ma première requête à partir de ci-dessus:
/*
Alias: THEAPP
LiveAnswer: FALSE
*/
sélectionnez RMG, count(RMG) en tant que MULTI
& nbsp & nbsp de 'INVENTRM.DB'
& nbsp & nbsp GROUPE PAR RMG
Ceci est un exemple simple, mais vous pourriez faire la somme des totaux tout aussi facilement. L'idée est d'obtenir des données agrégées. Cela conduit à la requête réelle utilisée dans le code du programme:
SÉLECTIONNEZ R.*
& nbsp & nbsp DE 'INVENTRM.DB' R, 'COUNTRMG.SQL' M
& nbsp & nbsp OÙ ((R. RMG=M. RMG)
& ! & ! & ! & ! & ! & nbsp et(M. MULTI > 1))
Le secret de la relation entre le deuxième 'virtuel' de table via l'sauvé de code SQL. Il vous permettra de charger et d'exécuter et de s'offrir comme un temporaire en mémoire table à filtrer INVENTRM avec.
Les possibilités d'utiliser cette fausse imbriquée SQL sont certainement pas limité à faire des comptages de trouver de multiples instances d'un index secondaire domaine. Comme mentionné, vous pourriez ne sommes pour une plage de dates et de produire tous les éléments qui entrent dans les détails de cette gamme. Presque tous d'entre eux vont conduire à deux pas de la requête et de la réponse dont vous avez besoin.
Gary Mugford
l'Idée de Mécanicien, Bramalea SUR Canada
[email protected]
Maintenant, les enfants, une question a la fois!
Maintenant, les enfants, une question a la fois! : Plusieurs milliers de conseils pour vous faciliter la vie.
L'eternel Debutant - Entree de Journal #7.1
Cet article est d'abord paru sur http://www.undu.com
Normalisee de donnees est grande. Une instance de la personne donnee, et de ne jamais conserver des donnees qui peuvent etre extrapolees a partir des autres donnees a la volee. Maigre, moyenne et, occasionnellement, un gigantesque douleur.
Un client m'a pose une question simple. Peut-on y voir un rapport d'inventaire de seulement les pieces qui appartiennent a l'une des matieres premieres du groupe qui a plus d'une partie? Ceci permettrait une meilleure ecoute de l'ensemble des besoins de matieres premieres a long terme. (Nous avons Min/Max et sur Demande automatique de l'achat des matieres premieres drapeau rouge des listes deja. Ils voulaient voir la vue globale de l'utilisation multiple des matieres premieres)
Simple. Je vais demander a la base de donnees d'inventaire pour toutes les parties ou le RMG (Matieres Premieres code de Groupe) a plus d'une instance. Dans le Paradoxe, je ferais un CALC COMPTER TOUTES les requetes sur le RMG, puis une deuxieme requete demandant pour tous les enregistrements dans la base de donnees d'Inventaire qui sont dans la reponse temporaire de la table. Paradoxe serait nettoyer la table de reponse a mon etre fini avec elle. L'ensemble de codage de l'exercice serait trivial.
Mais comment le faire en SQL Local en utilisant le meme Paradoxe des bases de donnees de Delphi? Une reponse qui a FAIT un travail etait de faire les memes requetes que ci-dessus, mais j'ai eu a prendre soin de creer la reponse de la base de donnees dans la vraie vie, puis le supprimer apres le fait. Repugnant. D'ailleurs, n'etait-il un moyen de faire cela dans une super instruction SQL? Quelque chose au sujet des instructions imbriquees?
C'est un mensonge des gens. Imbriquee SQL ne semble pas fonctionner SQL Locales realisees sur les tables Paradox. Apres quelques tete-battant, j'ai admis la defaite et se sont dirigees vers le Tamarack site de recherche (developers.href.com) et a commence la recherche. J'ai fait deux recherches avant, j'ai trouve la sagesse d'un Steve Koterski de Borland. Il semble qu'il est le SQL wiz. En extrapolant a certaines de ses reponses et de tester un peu, j'ai decouvert une belle, propre solution au probleme. Et cette solution a d'autres applicabilite si vous continuez a utiliser Paradoxe de bases de donnees dans vos applications.
tout d'Abord, j'ai cree un fichier SQL appele 'CountRMG.SQL'. C'est l'equivalent de ma premiere requete a partir de ci-dessus:
/*
Alias: THEAPP
LiveAnswer: FALSE
*/
selectionnez RMG, count(RMG) en tant que MULTI
& nbsp & nbsp de 'INVENTRM.DB'
& nbsp & nbsp GROUPE PAR RMG
Ceci est un exemple simple, mais vous pourriez faire la somme des totaux tout aussi facilement. L'idee est d'obtenir des donnees agregees. Cela conduit a la requete reelle utilisee dans le code du programme:
SELECTIONNEZ R.*
& nbsp & nbsp DE 'INVENTRM.DB' R, 'COUNTRMG.SQL' M
& nbsp & nbsp OU ((R. RMG=M. RMG)
& ! & ! & ! & ! & ! & nbsp et(M. MULTI > 1))
Le secret de la relation entre le deuxieme 'virtuel' de table via l'sauve de code SQL. Il vous permettra de charger et d'executer et de s'offrir comme un temporaire en memoire table a filtrer INVENTRM avec.
Les possibilites d'utiliser cette fausse imbriquee SQL sont certainement pas limite a faire des comptages de trouver de multiples instances d'un index secondaire domaine. Comme mentionne, vous pourriez ne sommes pour une plage de dates et de produire tous les elements qui entrent dans les details de cette gamme. Presque tous d'entre eux vont conduire a deux pas de la requete et de la reponse dont vous avez besoin.
Gary Mugford
l'Idee de Mecanicien, Bramalea SUR Canada
[email protected]
Maintenant, les enfants, une question à la fois!
By commentfaire
Maintenant, les enfants, une question à la fois! : Plusieurs milliers de conseils pour vous faciliter la vie.