Veröffentlicht 23. November 200123 j ich mach ne abfrage um festzustellen, ob und wie lange rechnungen fällig sind. dafür habe ich ein einlesedatum, an dem die rechnung in die datenbank aufgenommen wird und ein zahltermin. ist der zahltermin und der einlesetermin 30 bis 60 tage auseinander ist die rechnung halt über 1 monat fällig. die abfrage sucht mir aber keine rechnung raus obwohl ein arsch voll rechnungen angezeigt werden müßten!!!WARUM???? so sind die sql-syntax aus: SELECT First(EARS_OPEN_ITEM_TBL.AR_ACCT_ID) AS Kund, First(CITOTBL_TBL.CUST_NAME) AS Name, First(CITOTBL_TBL.CUST_CITY) AS Stadt, First(COUNTRY_ID.COUNTRY_NAME) AS Land, First(EARS_OPEN_ITEM_TBL.AR_TRNS_CODE) AS Code, First(EARS_OPEN_ITEM_TBL.AR_ITEM_DATE) AS Beleg_Datum, EARS_OPEN_ITEM_TBL.AR_ITEM_SRCH_ID AS Beleg, First(EARS_OPEN_ITEM_TBL.AR_ITEM_ITRL_DUE_DATE) AS Fällig, Sum(EARS_OPEN_ITEM_TBL.LCL_CUR_AR_ITEM_GRSS_AMT) AS Gesamt_EURO, Sum(IIf([AR_ITEM_ITRL_DUE_DATE]>([sYS_RUN_CNTL_DATE]),[LCL_CUR_AR_ITEM_GRSS_AMT],0)) AS Nicht_fällig, Sum(IIf([AR_ITEM_ITRL_DUE_DATE]>([sYS_RUN_CNTL_DATE]-30) And [AR_ITEM_ITRL_DUE_DATE]<([sYS_RUN_CNTL_DATE]),[LCL_CUR_AR_ITEM_GRSS_AMT],0)) AS [<=01_Monat], Sum(IIf([AR_ITEM_ITRL_DUE_DATE]>([sYS_RUN_CNTL_DATE]-60) And [AR_ITEM_ITRL_DUE_DATE]<([sYS_RUN_CNTL_DATE]-30),[LCL_CUR_AR_ITEM_GRSS_AMT],0)) AS [<=02_Monat], Sum(IIf([AR_ITEM_ITRL_DUE_DATE]>([sYS_RUN_CNTL_DATE]-90) And [AR_ITEM_ITRL_DUE_DATE]<([sYS_RUN_CNTL_DATE]-60),[LCL_CUR_AR_ITEM_GRSS_AMT],0)) AS [<=03_Monat], Sum(IIf([AR_ITEM_ITRL_DUE_DATE]<([sYS_RUN_CNTL_DATE]-90),[LCL_CUR_AR_ITEM_GRSS_AMT],0)) AS [> 03_Monat], First(EARS_OPEN_ITEM_TBL.CUR_CODE) AS CUR FROM EARS_OPEN_ITEM_TBL, CITOTBL_TBL, COUNTRY_ID GROUP BY EARS_OPEN_ITEM_TBL.AR_ITEM_SRCH_ID, COUNTRY_ID.COUNTRY_ID ORDER BY COUNTRY_ID.COUNTRY_ID, First(EARS_OPEN_ITEM_TBL.AR_ACCT_ID), First(EARS_OPEN_ITEM_TBL.AR_ITEM_DATE);
28. November 200123 j warum so umständlich??? wenn du alles ausgeben willst das mehr als 30 tage überfällig ist probiers einfach mal damit: SELECT Tabelle1.einlesedatum, Tabelle1.zahltermin, tabelle1.einlesedatum- tabelle1.zahltermin as Tage FROM Tabelle1 WHERE tabelle1.zahltermin - tabelle1.einlesedatum >= 30; wenn du aber nur alle die zwischen 30 und 60 tage überfällig sin ausgeben willst mußt du nur die letzte zeile umd folgende anweisung erweitern: AND tabelle1.zahltermin - tabelle1.einlesedatum <= 60; in dem dritten feld wird dir dann noch angegeben wieviele tage die rechnung überfällig ist. damit das funktioniert müssen die beiden felder in der tabelle aber als datum deklariert sein, sonst stimmt die rechnung nicht. hoffe das bringt dich weiter
28. November 200123 j Klingt mir nach Access, oder? Die SQL-Befehle sind so umständlich ausformuliert! Kann man sich nicht eigentlich das from sparen, wenn mann "tabellenname.spalte" schreibt? Gehört zwar nicht direkt dazu, aber musste ich mal loswerden! Bin SQL-Neuling und habe die Grundlagen in Interbase gelernt, jetzt rege ich mich immer über die gekünstelte Kompliziertheit des lieben Access 2000 aus dem Hause Microsoft auf! Gruß StMi
28. November 200123 j da stimm ich Dir zu , ich sass des erste ml vor Acces und hab die Welt nicht mehr verstanden als ich meine SQL Abfragen generieren wollte, naja nach einer Nachfrage erhielt ich als Antwort: "Hahhahahaha, ja das is halt MS.....", wieso machen die bitte so nen Schei**
28. November 200123 j <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von SteffiMichi: <STRONG>Bin SQL-Neuling und habe die Grundlagen in Interbase gelernt, jetzt rege ich mich immer über die gekünstelte Kompliziertheit des lieben Access 2000 aus dem Hause Microsoft auf! </STRONG>
30. November 200123 j hoho, hab mir das problem schon gelöst...das schöne war, dass die abfrage jetzt sowieso ganz anders gestaltet werden soll... naja, trotzdem vielen dank PS: der assistent ist scheiße...
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.