AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken mehrere Spalten in Ergebnismenge
Thema durchsuchen
Ansicht
Themen-Optionen

mehrere Spalten in Ergebnismenge

Ein Thema von Hansa · begonnen am 4. Dez 2012 · letzter Beitrag vom 6. Jan 2013
Antwort Antwort
Seite 1 von 2  1 2      
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#1

AW: mehrere Spalten in Ergebnismenge

  Alt 4. Dez 2012, 18:20
Was nützt es mich, die EXE nicht ändern zu müssen, dafür aber die View bzw. die DB ? Oder andersrum gefragt : wie kann ich die View parametrisieren ? Geht IMHO nicht. Ich kann ja wohl schlecht am 1.1.2013 eine neue View anlegen, weil es dann auch Daten für 2013 gibt.
Gruß
Hansa
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#2

AW: mehrere Spalten in Ergebnismenge

  Alt 4. Dez 2012, 18:44
Nun ja, es nützt etwas, wenn der Kunde oder wer auch immer die View anpassen kann, ohne die EXE ändern zu müssen, weil aus Sicht der EXE die View ja immer noch die gleichen Daten (von der Struktur her) liefert. Aber wenn Du natürlich mit deiner One Man Show keinen Bedarf an solchen Konzepten hast, dann bringt Dir das natürlich nichts. Ebensowenig scheinst Du Interesse an klaren Strukturen und Paradigmentrennung zu haben, was nicht weiter schlimm ist, da Du ja alleine arbeitest.

Und stell Dir mal vor, Du bietest deinen Kunden irgendwann doch mal einen Reportgenerator an und kannst dann -boah ey- auf eben diese View zurückgreifen, weil, verflixt, die etwas komplexere Query gerade nicht zur Hand ist. Und auch würde dann gelten: Wenn sich die Struktur der Datenbank ändert (bei Dir natürlich nicht, aber bei Amateuren kommt so etwas schon mal vor), dann kann man die Sicht auf die Daten (daher könnte der Name 'View' kommen) ändern, ohne -wie gesagt- die EXE'n, Report-Templates, EXCEL-Dateien, Web-Anwendungen usw. anfassen zu müssen. Das alles hast Du natürlich nicht: Du hast nur diese eine EXE und den Compiler immer dabei.

Aber das sind ja nur hypothetische Überlegungen, die für Profis deines Kalibers eh alle nicht zutreffen.

  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: mehrere Spalten in Ergebnismenge

  Alt 4. Dez 2012, 19:04
Ich schließe mich meinem Vorredner inhaltlich an (ohne den persönlichen Aspekt).
Die Sicht kannst Du möglicherweise nicht ändern (ich weiß nicht ob Deine DB Functiontables kennt), aber Du kannst Sie so formulieren dass sie auch in Jahren noch gültig ist, indem Du das Jahr in die Ausgabe mit aufnimmst und bei der Summierung entsprechend berücksichtigst, wobei eine entsprechende Mitaufnahme von ID_ART in Deinem Fall auch Sinn machen sollte.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

AW: mehrere Spalten in Ergebnismenge

  Alt 4. Dez 2012, 22:11
Aber das sind ja nur hypothetische Überlegungen, die für Profis deines Kalibers eh alle nicht zutreffen.

Stimmt, ja. So was kann allerdings nur ein Dummschwätzer sagen, der am grünen Tisch sitzt und sich theoretische Überlegungen Jenseits der Praxis ausdenkt

Allgemein gültig muss es jedoch sein. Werde den View wohl in SP umbauen. Und @furtbichler: ich könnte auch die betreffende Tabellen umbauen.
Gruß
Hansa
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.879 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: mehrere Spalten in Ergebnismenge

  Alt 5. Dez 2012, 05:23
Zitat:
Weiss ich auch nicht (sollte eine 0 sein). Ich meinte, man könnte das subselect wegkürzen. Hab kein FB zum testen, aber es sollte doch einfacher gehen, oder?
Er hat die Aggegatsfunktion hier nicht wollen, deshalb habe ich es mit der Derived Table implementiert.
Markus Kinzler
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#6

AW: mehrere Spalten in Ergebnismenge

  Alt 5. Dez 2012, 07:09
Moin,
das lese ich zwar nicht heraus, aber offensichtlich würde es auch einfacher gehen (dein Beispiel ist dafür aber sehr verständlich).
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#7

AW: mehrere Spalten in Ergebnismenge

  Alt 6. Dez 2012, 23:24
Aber das sind ja nur hypothetische Überlegungen, die für Profis deines Kalibers eh alle nicht zutreffen.
Haha, Nach der Überheblichkeit kommt meist der tiefe Fall oder zumindest die Erleuchtung. Siehe hier :

Weiss ich auch nicht (sollte eine 0 sein). Ich meinte, man könnte das subselect wegkürzen. Hab kein FB zum testen, aber es sollte doch einfacher gehen, oder?
Wenn ich das so im nachhinein lese :

Es geht mit einem Wort mehr in meinem SQl in Beitrag #5. Das wars. Kein Subselect, kein View, kein IIF (obwohl bei mir das CASE wohl die selbe Wirkung hat). Jedenfalls reichen 15 Zeilen als normales SQL Statement grundsätzlich aus. Habe da dann noch ein paar Parameter eingebaut und die where-Bedingung verfeinert und fertig. Ist auch bereits in Delphi teilweise eingebaut bzw. umgesetzt.

Ausdrücklicher Dank geht an mkinzler und DeddyH.
Angehängte Grafiken
Dateityp: jpg Unbenannt.jpg (56,9 KB, 16x aufgerufen)
Gruß
Hansa
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#8

AW: mehrere Spalten in Ergebnismenge

  Alt 7. Dez 2012, 06:43
[
Haha, Nach der Überheblichkeit kommt meist der tiefe Fall oder zumindest die Erleuchtung.
Schon bemerkt? Wenn ich tief falle, musst Du hoch fliegen, damit wir uns in der Mitte treffen.

Soviel zum Niveauunterschied.


Und damit es nicht bierernst wird:
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#9

AW: mehrere Spalten in Ergebnismenge

  Alt 15. Dez 2012, 13:52
Ich habe jetzt hier folgendes im SELECT einer SP stehen:

Code:
    CASE JAHR
      WHEN :VERGLJAHR THEN JAHR
      ELSE 0
    END AS VERGLJAHROUT,
    CASE JAHR WHEN :VERGLJAHR THEN
    SUM (CASE MONAT WHEN 1 THEN UMSATZ
         ELSE 0
         END)
    ELSE 0
    END AS MON1,
    CASE JAHR WHEN :VERGLJAHR THEN
    SUM (CASE MONAT WHEN 2 THEN UMSATZ
         ELSE 0
         END)
    ELSE 0
    END AS MON2
Das Ganze soll jetzt für 2 Jahre und dann insgesamt 24 Monate funktionieren. Es geht zwar jetzt so auch, aber an allen Ecken frage ich ja den Parameter für das jewilige Jahr ab. Kann man das kürzer hinkriegen ? Also ungefähr so :

Code:
    CASE JAHR
      WHEN :VERGLJAHR THEN /*  hier 12 Monate von VerglJahr behandeln
      WHEN :AUSGJAHR THEN /*   12 Monate von AusgJahr...
      ELSE 0
    END AS ??
Gruß
Hansa
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10

AW: mehrere Spalten in Ergebnismenge

  Alt 5. Jan 2013, 17:19
Das ist jetzt alles soweit erledigt. Allerdings noch eine Frage :

Wie werden die angezeigten Felder gruppiert ? Mit dem hier :

Code:
returns (
    artnr integer,
    mon01 decimal(15,2),
    mon02 decimal(15,2),
    mon03 decimal(15,2),
...
    altmon01 decimal(15,2),
    altmon02 decimal(15,2),
    altmon03 decimal(15,2),
...
INTO :ARTNR,
  :MON01,:MON02,:MON03,...ALTMON01,:ALTMON02,:ALTMON03...
wird mir zumindest in IBEXPERT folgendes angezeigt :

von links nach rechts : altmon1,altmon2,mon01,mon02,altmon3, usw.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz