Re: View's über 2 Tabellen und Kartesisches Produkt
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 |
Re: View's über 2 Tabellen und Kartesisches Produkt
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 |
Re: View's über 2 Tabellen und Kartesisches Produkt
Na dann will ich mal probieren, ungetestet:
SQL-Code:
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.
( 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 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. |
Re: View's über 2 Tabellen und Kartesisches Produkt
Danke werd'gleich mal testen
MfG...Klaus :thumb: |
Re: View's über 2 Tabellen und Kartesisches Produkt
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 |
Re: View's über 2 Tabellen und Kartesisches Produkt
Zitat:
Zitat:
Zitat:
SQL-Code:
Dann ist die klare Antwort ja, geht problemlos. Nur dran denken den Datentyp von :Monat als Integer zu nehmen.
select ... where Month(Datum) = :Monat
|
Re: View's über 2 Tabellen und Kartesisches Produkt
gleich das nächste Problem
Code:
Der Wert Lohn liegt in der Tabelle Rechnung nur als Schlüssel vor, der eigentliche Wert steht in der Tabelle Lohn.
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 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:
MfG...Klaus
Inner JOIN tbl_Lohn
ON tbl_Rechnung.SID_LOHN = tbl_Kosten.ID Ich hoffe ich nerve nicht all zu doll. :cheers: |
Re: View's über 2 Tabellen und Kartesisches Produkt
Zeig mal deinen kompletten SQL Befehl, der nicht funktioniert.
|
Re: View's über 2 Tabellen und Kartesisches Produkt
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 :hi: |
Re: View's über 2 Tabellen und Kartesisches Produkt
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:30 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