Jetzt Kinder Eine Frage zu einer Zeit!

Kann 10, 2016 Admin Computer 0 6
FONT SIZE:
fontsize_dec
fontsize_inc

Die Perpetual Grün - Protokolleintrag # 7.1

Dieser Artikel erschien auf http://www.undu.com



Normalisierten Daten ist groß. Ein Beispiel für eine bestimmte Person, und nicht um alle Daten zu halten, die aus anderen Daten über die Flugextrapoliert werden kann. Schlanke, mittlere, und gelegentlich eine gigantische Schmerzen.



Ein Client hat mich gebeten, eine einfache Frage. Wir können einen Inventarbericht sehen, nur die Teile, die zu einer Gruppe von Rohstoff, der mehr als einen Teil in sich hat gehören? Dies würde eine bessere Gesamtansicht des Rohmaterials wurde auf lange Sicht. (Wir Min/Max und bereits fordern Listen rote Fahne automatischen Kauf von Rohstoffen. Wollte das globale Sicht der Mehrfachnutzung von Rohstoffen zu sehen)



Einfach. Ich werde die Datenbank Inventar aller Teile, in denen die RMG (Rohstoff Gruppe Code) hat mehr als eine Instanz zu fragen. In Paradox, würde ich ein CALC zählen alle Abfragen der RMG, dann eine zweite Abfrage, die für alle Datensätze in der Inventardatenbank, die in Reaktion auf eine temporäre Tabelle sind gefragt. Paradox wäre abräumen Antwort auf meine Wesen mit ihm getan. Die ganze Übung wäre trivial Codierung sein.



Aber, wie es geht vor Ort mit der gleichen SQL-Datenbank Paradox zu Delphi? Eine Antwort, die gearbeitet hat, war es, die gleichen Fragen über fragen, aber ich musste aufpassen, um die Datenbank Antwort im wirklichen Leben zu schaffen und löschen Sie ihn nach der Tat. Noisome. Auch gab es eine Möglichkeit, dies in einer SQL-Anweisung Super tun? Etwas über verschachtelte Aussagen?



Es ist eine Lüge, die Menschen. Verschachtelte SQL scheint nicht mit lokalen SQL läuft auf Paradox-Tabellen zu arbeiten. Nach einiger Kopf hämmerte, gab ich zu Niederlage und gingen auf die Website-Suche Tamarack (developers.href.com) und begann, mich. Ich habe zwei Forschungs, bevor ich die Weisheit eines Koterski Steve Borland erfüllt. Es scheint, dass sowohl SQL wiz lokal. Extrapoliert man einige seiner Antworten und testen ein wenig ", fand ich eine schöne, saubere Lösung für das Problem. Und diese Lösung hat andere Anwendung, wenn Sie weiterhin die Paradox-Datenbank in Ihren Anwendungen verwenden.



Erstens, eine SQL-Datei namens I "CountRMG.SQL." Das entspricht meiner ersten Abfrage von oben:



/ *

Alias: theApp

LiveAnswer: FALSCH

* /

Wählen RMG, count (RMG) als MULTI

Von "INVENTRM.DB"

RMG GROUP BY



Dies ist ein einfaches Beispiel, aber Sie könnten genauso gut machen die Gesamtsumme. Die Idee ist, einige Daten Aggregate bekommen. Dies führt zu den tatsächlichen im Programmcode verwendeten Abfragen:



SELECT R. *

DA "INVENTRM.DB" R ", COUNTRMG.SQL" M

WHERE ((R.RMG = M.RMG)

und (M.MULTI> 1))



Das Geheimnis ist die Verbindung der zweiten Tabelle mit dem SQL gespeichert "virtuelle". Es wird geladen und ausgeführt werden und wie eine temporäre Tabelle handeln Speicher auf INVENTRM mit Filter.



Die Möglichkeit der Verwendung dieses gefälschte verschachtelte SQL sind sicherlich nicht zu machen Pläne, mehrere Instanzen eines Sekundärindexfeld zu finden beschränkt. Wie bereits erwähnt, können Sie Summen tun könnte einen Datumsbereich und produzieren alle Elemente, die in diesem Bereich in spezifische fallen. Fast alle von ihnen werden zu einer Abfrage in zwei Phasen und für Ihre Antwort führen.



Gary Mugford

Idee Mechaniker, Bramalea ON Canada

mugford@aztec-net.com

(0)
(0)

Kommentare - 0

Keine Kommentare

Fügen Sie einen Kommentar

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Zeichen übrig: 3000
captcha