Zum Inhalt springen

batzenlurch

Mitglieder
  • Gesamte Inhalte

    17
  • Benutzer seit

  • Letzter Besuch

  1. Eloquence (relativ exotisch). Evtl. noch jemand eine Idee zum Select? ;-) Gruß
  2. Hallo, erst mal Danke für die Beiträge. Ich möchte eine Übersicht der letzten 3 Aufträge PRO Artikel. Leider kann das DBMS keine Subqueries. jeglalf - dein sql string funktioniert leider nicht in access. ps. ich gehe über access per ODBC auf die DB. Gruß
  3. Hallo Zusammen, Ich stehe gerade auf'm Schlauch und Google kann mir trotz zahlloser Einträge gerade nicht helfen. Zum Thema. Ich möchte aus einer Tabelle die letzten 3 Aufträge zu einem Artikel herausfinden und bekomm den SQL String nicht hin: Tabelle KA1: AuftragsNr ArtikelNr Datum 11.2 1 20090112 22.1 1 20090112 31.3 1 20090110 12.a 2 20090114 43 4 20090522 34.1 1 20090101 Mein bisheriger Code: SELECT TOP 3 KA1.AuftragsNr, KA1.ArtikelNr FROM ( SELECT AuftragsNr, ArtikelNr, Datum FROM KA1 ORDER BY DATUM DESC ) AS tmp_KA1 INNER JOIN KA1 ON (KA1.AuftragsNr = tmp_KA1.AuftragsNr) AND (KA1.ArtikelNr = tmp_KA1.ArtikelNr) GROUP BY KA1.ArtikelNr, KA1.AuftragsNr ORDER BY KA1.ArtikelNr Bitte um eine kleine Hilfestellung. Steh total auf'm Schlauch :upps Danke! Gruß
  4. Google ist dein Freund - ;-) MySQL für Anfänger einfach erklärt PHP Script resource Tutorials, Workshops und Artikel Gruß, Batze
  5. Der Select klappt wunderbar: Alle Spalten aus MIS_CU werden ausgegeben und noch die zusätzlich selektierte Spalte (Preis pro Stueck), welche beim Update in MIS_CU.CU_UP geschrieben werden soll. Soweit also alles bestens. Das Problem beginnt jetzt beim Updatebefehl. Wenn ich den SQL so ausführe: update MIS_CU set MIS_CU.CU_UP = ( SELECT Min(Preise.stck_preis) AS stck_preis FROM ( SELECT MIS_PC.PC_CU_No, Sum(MIS_PC.PC_Act) AS stck_preis FROM MIS_PC GROUP BY MIS_PC.PC_CU_No, MIS_PC.PC_QS ) AS Preise WHERE MIS_CU.CU_NO = Preise.PC_CU_No GROUP BY Preise.PC_CU_No ); ... fehlt meiner Meinung nach die Where-Klausel, in der ich sage, welche MIS_CU.CU_NO mit dem stck_preis geupdatet werden soll. Es erscheint die Fehlermeldung (liegt aber nicht an Zugriffsrechten): "Operation muss eine aktualisierbare Abfrage verwenden" Führe ich das ganze so aus: update MIS_CU set MIS_CU.CU_UP = ( SELECT Min(Preise.stck_preis) AS stck_preis FROM ( SELECT MIS_PC.PC_CU_No, Sum(MIS_PC.PC_Act) AS stck_preis FROM MIS_PC GROUP BY MIS_PC.PC_CU_No, MIS_PC.PC_QS ) AS Preise WHERE MIS_CU.CU_NO = Preise.PC_CU_No GROUP BY Preise.PC_CU_No ) [B]where MIS_CU.CU_NO = Preise.PC_CU_NO[/B] ... liegt Preise.PC_CU_NO außerhalb des Gültigkeitsbereiches. Der Update-String wär meiner Ansicht nach so korrekt: UPDATE MIS_CU SET MIS_CU.CU_UP = (SELECT MIN(Preis.stck_preis) AS stck_preis FROM (SELECT MIS_PC.PC_CU_No, SUM(MIS_PC.PC_Act) AS stck_preis FROM MIS_PC GROUP BY MIS_PC.PC_CU_No, MIS_PC.PC_QS ) AS Preis WHERE MIS_CU.CU_NO = Preis.PC_CU_No GROUP BY Preis.PC_CU_No ) WHERE MIS_CU.CU_NO IN (SELECT MIS_PC.PC_CU_No FROM MIS_PC GROUP BY MIS_PC.PC_CU_No ) Leider aber selbe Fehlermeldung: "Operation muss eine aktualisierbare Abfrage verwenden" Hat evtl. jemand einen Tipp? Schon mal recht herzlichen Dank für eure Bemühungen. Gruß, batze
  6. Die Frage ist: Warum funktioniert der Updatebefel nicht, obwohl der Select klappt? Hier mein Select: SELECT MIS_CU.*, (SELECT Min(Preise.stck_preis) AS stck_preis FROM ( SELECT MIS_PC.PC_CU_No, Sum(MIS_PC.PC_Act) AS stck_preis FROM MIS_PC GROUP BY MIS_PC.PC_CU_No, MIS_PC.PC_QS ) AS Preise WHERE MIS_CU.CU_NO = Preise.PC_CU_No GROUP BY Preise.PC_CU_No ) FROM MIS_CU Gruß
  7. Dazu evtl. ganz gut zu wissen: Es gibt verschiedene Notationen: a) Chen-Notation: Schlagiter/Stucki-Notation Beispiel: Die gänige Notation ist Chen (Sprachnotation): '1' Kunde kann 'n' Artikel kaufen Die datenbanktechnisch korrekte Notation ist Schlagiter/Stucki, denn...: Kunde abc kauft Artikel 12 Kunde abc kauft Artikel 13 Kunde abc kauft Artikel 14 Somit hätte die 'Bestellungen' Tabelle Kunde 'n'-mal abgelegt, aber zu jedem Kunden nur '1'-mal die Artikelnummer... Es ist den meisten Profs. egal welche Notation. Du musst Dich allerdings für eine entscheiden - logisch oder? ;-)
  8. Hallo Forumgemeinde, Hoffe ihr könnt mir bei diesem Problem helfen (benutze (leider) MS Access 2003): 1.Tabelle[MIS_CU]: No, Stueckpreis 2.Tabelle[MIS_PC]: No, Staffelmenge, 'Wert der PreisPos' Ich möchte die 1.Tabelle updaten: mit der Summe aus den Preispositionen der niedrigsten Staffelmenge, gruppiert auf No und Staffelmenge Hier mein SQL: update MIS_CU set MIS_CU.CU_UP = ( SELECT Min(Preise.stck_preis) AS stck_preis FROM ( SELECT MIS_PC.PC_CU_No, Sum(MIS_PC.PC_Act) AS stck_preis FROM MIS_PC GROUP BY MIS_PC.PC_CU_No, MIS_PC.PC_QS ) AS Preise [B]WHERE MIS_CU.CU_NO = Preise.PC_CU_No[/B] GROUP BY Preise.PC_CU_No ); PS. Der Subselect funktioniert einwandfrei: SELECT Min(Preise.stck_preis) AS stck_preis FROM ( SELECT MIS_PC.PC_CU_No, Sum(MIS_PC.PC_Act) AS stck_preis FROM MIS_PC GROUP BY MIS_PC.PC_CU_No, MIS_PC.PC_QS ) AS Preise GROUP BY Preise.PC_CU_No Ich hoffe ich habe mich verständlich ausgedrückt. Danke für jeden Tipp. Gruß
  9. Beschreibe doch mal bitte genauer was Du mit deiner Abfrage bewirken willst. Im Moment verstehe ich dein Problem so: Ich würde folgendes machen: Bei einem Dialog ist der Aufbau in Access folgender: Abfrage anlegen: select id, timestamp from tabelle1 Bericht anlegen: Hier werden die Daten ausgeben Formular anlegen: In der Oberfläche muss es ein Feld für die ID geben und ein Button mit dem die Abfrage gestartet wird. Wird die Abfrage ausgeführt gibst Du die ID als "Where" im SQL mit: Den 'Bericht' könnte man im Prinzip auch weglassen und das Ergebnis in einer MsgBox ausgeben; ein Bericht hat den Vorteil, dass er direkt ausgedruck und einfach bearbeitet werden kann. Ich hoffe die Erklärungen reichen auch ohne Bildchen ;-) Gruß, Batze
  10. Habe mir einen kleinen Workaround gebastelt. Wäre trotzdem gut zu wissen wie ein convert in Access funktioniert. Gruß
  11. Erstmal danke für die Antwort. Tabelle1.Feld2 ist eine 'Zahl/Long Integer' --> Integer Tabelle2.Feld1 ist eine 'Zahl/Double' --> Float Normalerweise würde ich einfach beide zu einem string konvertieren. Soll heißen: IntToStr(Tabelle1.Feld2) FloatToStr(Tabelle2.Feld1) Aber wie funktioniert diese Konvertierung in Access? Google spuckt mir leider auch keine Ergebnisse aus Zumindest keine, bei denen ich direkt in der Tabellenübersicht bleiben kann und nicht ein workaround in VBA basteln muss... Gruß, Batze
  12. Ich verstehe die Frage garnicht so ganz. Was willst Du mit den PHP Funktionen wenn ihr das Modul nicht mehr einsetzt?! Beschreibe hier doch mal bitte kurz worum es eigentlich geht, dann kann dir bestimmt besser geholfen werden. Ich kann mir bisher nicht vorstellen, was Ihr umgestellt habt, dass Ihr/Du jetzt die ganzen PHP Funktionen in SQL nachbauen musst. Ganz nebenbei ist das bei vielen Funktionen unmöglich. Man kann keine Skriptsprache mit SQL vergleichen.... Gruß, Batze
  13. Hi Ani, Ich würde vorschlagen das Datum einfach komplett zu zerlegen. d.h. =links(FELD;4) AS JAHR =rechts(links(FELD;6);2) AS MONAT usw. Hoffe dieser Workaround hilft Dir. Gruß, Batze
  14. Hallo Forumgemeinde, hoffe Ihr könnt mir bei meinem kleinen Problem helfen. Mit Datenbanken arbeite ich schon seit Jahren, bin aber in Access neu. Es geht um folgendes... Habe 2 externe Tabellen (ODBC) die ich über einen Schlüssel verbinden möchte. Problem: Tabelle1.Feld2 ist eine 'Zahl/Long Integer' Tabelle2.Feld1 ist eine 'Zahl/Double' Wie konvertiere ich einen der beiden Werte in Access? Schon mal vielen Dank für Eure Hilfe! Gruß

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...