AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi View's über 2 Tabellen und Kartesisches Produkt
Thema durchsuchen
Ansicht
Themen-Optionen

View's über 2 Tabellen und Kartesisches Produkt

Ein Thema von Klaus D. · begonnen am 7. Jan 2005 · letzter Beitrag vom 9. Jan 2005
Antwort Antwort
Seite 2 von 3     12 3      
jensw_2000
(Gast)

n/a Beiträge
 
#11

Re: View's über 2 Tabellen und Kartesisches Produkt

  Alt 8. Jan 2005, 12:42
Code:
Hi Klaus,

soll das nachher so aussehen

Datum       Buchungstext       Betrag
---------------------------------------
01.01-2005   z.B. ReNr:         100,00
01.01.2005   Ausgabe 1234        -80,00

oder so ?

Datum       Buchungstext       Einnahme           Ausgabe
------------------------------------------------------------
01.01-2005   z.B. ReNr:         100,00
01.01.2005   Ausgabe 1234                             80,00
  Mit Zitat antworten Zitat
Klaus D.

Registriert seit: 27. Okt 2003
Ort: 03238 Finsterwalde
124 Beiträge
 
Delphi 6 Professional
 
#12

Re: View's über 2 Tabellen und Kartesisches Produkt

  Alt 8. Jan 2005, 12:52
genau so.
sorry ich habe mit SQL nicht all zu viel Erfahrung
-------------------
Datum Buchungstext Einnahme Ausgabe
------------------------------------------------------------
01.01-2005 z.B. ReNr: 100,00
01.01.2005 Ausgabe 1234 80,00

MfG..Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#13

Re: View's über 2 Tabellen und Kartesisches Produkt

  Alt 8. Jan 2005, 13:10
Na dann will ich mal probieren, ungetestet:
SQL-Code:
( select Datum, Rechnungsnummer as Buchungstext, Betrag as Einnahme from Tabelle1, null as Ausgabe
    where Month(Datum) = 12 and Year(Datum) = 2004
  union all
  select Datum, Material as Buchungstext, null as Einnahme, Betrag as Ausgabe
    where Month(Datum) = 12 and Year(Datum) = 2004
)

order by 1
Das mit der Month und Year Funktion ist Datenbankabhängig. Schlag dafür die Doku deiner Datenbank auf, da sollt sowas drin stehn. Oder nenn uns mal das System.

NULL kannst du auch durch 0 (Zahl null) ersetzen, je nach Belieben. Hätte dann den Vorteil daß du mit diesen Werten auch rechnen kannst. NULL z.B. macht unter MSSQL Probleme. Dinge wie sum(1+1+1+NULL) ergeben dort NULL, und nicht 3 wie vielleicht erwünscht... Probier einfach mal aus... Im Prinzip sollte die Abfrage jedoch so in der Art funktionieren.
  Mit Zitat antworten Zitat
Klaus D.

Registriert seit: 27. Okt 2003
Ort: 03238 Finsterwalde
124 Beiträge
 
Delphi 6 Professional
 
#14

Re: View's über 2 Tabellen und Kartesisches Produkt

  Alt 8. Jan 2005, 13:37
Danke werd'gleich mal testen
MfG...Klaus
  Mit Zitat antworten Zitat
Klaus D.

Registriert seit: 27. Okt 2003
Ort: 03238 Finsterwalde
124 Beiträge
 
Delphi 6 Professional
 
#15

Re: View's über 2 Tabellen und Kartesisches Produkt

  Alt 8. Jan 2005, 15:25
2 Sachen verstehe ich nicht:'order by 1' wieso 1
'null as Einnahme' was ist null

kann man anstatt das Datum statisch vorzugeben auch Platzhalter nutzen ?
MfG...Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#16

Re: View's über 2 Tabellen und Kartesisches Produkt

  Alt 8. Jan 2005, 16:11
Zitat von Klaus D.:
2 Sachen verstehe ich nicht:'order by 1' wieso 1
in der order by Klausel steht die 1 für die erste Spalte. Du kannst hier nicht den Namen der Spalte angeben, da du ein Union von 2 Select Abfragen hast.

Zitat von Klaus D.:
'null as Einnahme' was ist null
NULL steht quasi für leer. Da steht dann also nichts in der Spalte. Im Gegenzug steht 0 für die Zahl null. Das ist ein Unterschied.

Zitat von Klaus D.:
kann man anstatt das Datum statisch vorzugeben auch Platzhalter nutzen ?
Was meinst du mit Platzhalter? Etwa die Params aus deiner Query. Also so wie
select ... where Month(Datum) = :Monat Dann ist die klare Antwort ja, geht problemlos. Nur dran denken den Datentyp von :Monat als Integer zu nehmen.
  Mit Zitat antworten Zitat
Klaus D.

Registriert seit: 27. Okt 2003
Ort: 03238 Finsterwalde
124 Beiträge
 
Delphi 6 Professional
 
#17

Re: View's über 2 Tabellen und Kartesisches Produkt

  Alt 8. Jan 2005, 16:18
gleich das nächste Problem
Code:
       SELECT ARBEITSDATUM as Datum
            , Rechnung_NR as Buchungstext
            , SUM(ZEIT * LOHN) AS Einnahmen
        FROM tbl_Rechnung
WHERE MONTH (ARBEITSDATUM ) = 01
    AND YEAR (ARBEITSDATUM ) = 2005

union all

       SELECT Datum
            , Material as Buchungstext
            , Einlagen AS Einnahmen
        FROM tbl_Kosten
WHERE MONTH (datum) = 01
    AND YEAR (datum) = 2005
Der Wert Lohn liegt in der Tabelle Rechnung nur als Schlüssel vor, der eigentliche Wert steht in der Tabelle Lohn.
Tabelle Rechnung:
sid_Lohn sek Schlüssel
Tabelle Lohn:
ID pr.Schlüssel
Lohn Datenfeld
ich wollte jetzt folgendes im ersten SELECT unterbringen klappt aber irgenwie nicht.
Code:
Inner JOIN  tbl_Lohn
        ON  tbl_Rechnung.SID_LOHN = tbl_Kosten.ID
MfG...Klaus
Ich hoffe ich nerve nicht all zu doll.
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#18

Re: View's über 2 Tabellen und Kartesisches Produkt

  Alt 8. Jan 2005, 16:23
Zeig mal deinen kompletten SQL Befehl, der nicht funktioniert.
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#19

Re: View's über 2 Tabellen und Kartesisches Produkt

  Alt 8. Jan 2005, 16:26
Die schreibweise Order by 1 habe ich auch zur erstem mal gesehen. Ich denke es bedeutet Order by Datum (also Spalte 1).

Das Datum kann man durch Parameter ersetzen.
Schau dir das mal an ..SQL-Anfrage mit 2 Parametern

  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#20

Re: View's über 2 Tabellen und Kartesisches Produkt

  Alt 8. Jan 2005, 16:45
Moin,

dann melde ich mich auch mal wieder...

Also ORDER BY 1 gibt an, dass nach der ersten Spalte sortiert werden soll.
Da beide Spalten Datum heissen kann hier auch ORDER BY datum stehen.
Es wird sowieso immer die erste SELECT-Anweisung ausgewertet, also wenn in der zweiten SELECT-Anweisung die erste Spalte anders heissen würde, würde die Angabe ORDER BY datum auch funktionieren (bei MSSQL)

AS ändert die Spaltenbezeichnung. Hier muss man allerdings aufpassen, die MsQuery (Officepaket) überliesst das AS und liefert einen Fehler. Dort muss man diese Namensänderung immer in eine Unterabfrage verschlieben.

Also einfach ein...

SELECT *
FROM (

eingentliche Abfrage

) x

MfG
Thorsten
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 16:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz