Jump to content

Pathomorph

Members
  • Gesamte Inhalte

    75
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von Pathomorph

  1. Probier mal so etwas! SELECT * FROM Messwerte WHERE Zeit/500 = CAST(Zeit/500 AS int) AND Zeit BETWEEN Zeit_Von AND Zeit_Bis
  2. Man kann viel machen. Voraussetzung ist aber immer eine saubere Datenbasis. Die negativen Lagerbestände sind aber unsinnig und führen zu falschen Ergebnissen. Wenn du z.B. für ArtNr 4711 in 5 Lagern einen Bestand von -1 hast, in einem 1 und Rest 0: Du willst eine Übersicht haben, welche Artikel nicht da sind.Welche Erkenntnis kann du aus DIESEM Ergebnis gewinnen?? In dem Beispiel liefert -SUM(bestand) das Ergebnis -4 -SUM(ABS(bestand)) --> 6 Das richtige Ergebnis ist jedoch 1.. Oder?
  3. entweder vorher: update dep_bes set bestand=0 where bestand<0 oder in der "having"-Klausel noch Bestand>=0 reinbauen
  4. select artnr, bezeichnung from dep_bes group by artnr, bezeichnung having artnr < '40000000' and SUM(bestand) = 0
  5. Hi ... where SUM(bestand) = 0 (und nach ArtNr gruppieren)
  6. Dann hast du ein Problem...
  7. Hi Quick&Dirty: DELETE FROM Mitarbeiter where MitarbeiterID IN (SELECT DISTINCT MitarbeiterID FROM tmp)
  8. Da ich die Tabellenstruktur nicht kenne, kann auch ein "LEFT OUTER JOIN" oder "RIGHT OUTER JOIN" Sinn machen. BTW: Wenn du 2 Tabellen in den Abfragedesigner schmeisst, wird automatisch ein CROSS JOIN, was zu 95% unsinnig ist... Du musst immer die Tabellen verknüpfen
  9. UPDATE trechnung SET dErstellt = DATEADD(d, 2, tbestellung.dVersandt) FROM tbestellung INNER JOIN trechnung ON trechnung.kRechnung = tbestellung.tRechnung_kRechnung WHERE (dbo.tbestellung.dErstellt IS NOT NULL) AND dbo.tbestellung.nPlatform IN ('1','51', '52', '53', '54', '55', '56', '57')
  10. Hi Mario 1. Warum nutzt du CROSS JOIN? Was ist die Verbindung zw. trechnung und tbestellung? In der Tabelle trechnung musst du doch ein ID-Feld von tbestellung haben. Diese Felder nutzen und INNER JOIN verwenden. Das kartesische Produkt der 2 Tabellen erscheint mir unsinnig. Du hast die trechnung auch 2x verknüpft... 2. Die OR-Kette muss noch umklammert werden: (dErstellt IS NOT NULL) AND (...OR OR...OR). Übersichtlicher ist es, wenn du IN verwendest: WHERE (dbo.tbestellung.dErstellt IS NOT NULL) AND dbo.tbestellung.nPlatform IN ('1','51', '52', '53', '54', '55', '56', '57')
  11. update [TABLE] set [DATUMSFELD] = CONVERT(nvarchar(10),CAST([DATUMSFELD] -2 as datetime),104) Dann hast du das Datum auf Deutsch: 31.12.2013 --> allerdings ist das Resultat dann ein String(nvarchar) und kein "datetime" mehr
  12. Hi Kevin Ich verstehe nicht ganz, was du wirklich brauchst... Wie sehen die Daten aus? Gibt es mehrere Tabellen? Gruß
  13. Hi update [TABLE] set [DATUMSFELD] = CAST([DATUMSFELD] -2 as datetime)
  14. Hast du das Feld "name" auch um den Nachnamen bereinigt, so dass hier nur der Vorname drin steht?!
  15. Mach es bitte gleich richtig und erzeuge ein neues Attribut (Feld) "Nachname" Dann kannst du das Attribut "name" parsen und den Nachnamen in das neue Feld einfügen. Schau mal hierfür die mySQL-Funktion "SUBSTRIING_INDEX" mal an. UPDATE blablaTable SET Nachname = SUBSTRING(name,' ',-1) Damit wird bei einer Splittung des Feldes "name" das 1. rechte Element ermittelt... Dann kannst du dein ORDER BY mit dem Attribut "Nachname" regulär verwenden... Mach es gleich richtig. Wer weiß, was dir morgen wieder einfällt... ;-) Gruß
  16. na ja.. SQL ist nicht gleich SQL. Die Syntax ist gleich aber die "Build-In"-Funktionen sind teilweise unterschiedlich: Statt CHARINDEX benutzt du INSTR Statt LEN benutzt du LENGTH
  17. Du hast auch nicht gesagt, dass es sich hier um mySQL handelt... Wir sind hier auch im "MS SQL Server Forum".. Schau mal hier: http://dev.mysql.com/doc/refman/5.0/en/string-functions.html Ersetz "CHARINDEX(' ', name,0)" durch INSTR(' ', name)
  18. Hi Ich muss dir jetzt sicher nicht sagen, dass du "Name" und "Vorname" trennen sollst oder?! ... WHERE name LIKE '% H%' ORDER BY SUBSTRING(name,CHARINDEX(' ',name,0)+1,Len(name)-CHARINDEX(' ',name,0)) Gruß
  19. Unsere "EndUser" wissen nicht mal was SQL ist... Daher ist das Thema Berechtigungen irrelevant... Es gibt nur einen DB-User, der dbowner ist Ich bastel auf dem SQL-Server Funktionen oder meinetwegen Views, die ich dann von Excel aus "bediene". Der EndUser wählt in Excel nur die Auswertung, die er haben will und basta.
  20. Üblich? Mag sein.. Aber nicht zwingend die richtige(re) Entscheidung. Der Query-Optimizer macht da keine Unterscheidung und der Execution-Plan ist identisch... Ausserdem habe ich Funktionen, die durchaus komplexer sind. Mit Variablen und mit einer Logik, nicht nur paar Tabellen gejoint und Ausgabefelder angeben... Gruß
  21. Hi Jogurt Wenn du "SELECT cast (Datenbank.tagesauswertung.arbeitszeit_anfang as datetime)" ausführst, dann wird Cast die Tage ab dem 3.01.1900 als Datum ausgeben. (Excel macht das auch so ähnlich: Gibt mal in Excel 26160 in eine Zelle ein und dann als Datum formatieren. Raus kommt '15.08.1971' ) Wenn du CAST(26160 -2 as datetime) machst, erhälst du das selbe Datum. -2 da unterschiedliche Basis-Daten verwendet werden. Zum Problem: 26160 sind die Sekunden ab Mitternacht. Willst du den Dezimalwert, musst du die Zahl nur durch 3600 teilen, dann hast du 7,2666. Wenn du wirklich die reinen Uhrzeiten haben willst, dann musst du so'n Quatsch machen: SELECT CONVERT(varchar(8), dateadd(minute,Datenbank.tagesauswertung.arbeitszeit_anfang/60,'1900-01-01'),8) Das Ergebnis ist jedoch ein String(varchar) Gruß
  22. Nun ja.. Ich habe eine Datenbank mit 268 Tabellen. Um Auswertungen machen zu können, brauche ich vorbereitete Daten, die teilweise nur mit Views gehen oder, bei komplexen Daten, mit entsprechenden Funktionen. Views mag ich nicht, also rein in eine Tabellenwert-Funktion... So entstehen viele UDF's... Wir haben ca. 300 Kunden, die unterschiedliche Auswertungen brauchen. Bekommen also nur Häppchen davon als Script. Damit ich aber durch alle Funktionen durchblicke, teilweise Basisfunktionen, teilweise kundenspezifische, brauche ich irgendeine Übersicht. Kann auch ein Editor sein oder Document-Management-System oder gar die Festplatte mit Unterordnern...
  23. Nun.. Ich bin selbst der Entwickler... Mit ist das schon bewusste, was bei einer Änderung passiert. Die Funktionen sind aus verschiedenen Bereichen: Type-Converter, Reports zu bestimmten Themen usw. Nur anhand der Namen die Funktionen zu ordnen finde ich schwierig oder ich bin nicht kreativ genug.. Willst du mir also sagen, es gibt nichts in der Richtung? Thx für die Antwort
  24. Hi zusammen Ich habe eine Datenbank mit zig UDFs. Dieser werden jedoch alle unstrukturiert untereinander angezeigt und so blick ich nicht mehr durch, welche Funktion, wofür ist. Kann man diese strukturieren? Ich dachte da an eine Ordner-Struktur o.ä. Mit Schemas kann man die schon gruppieren, reicht aber nicht ganz aus... Gibt es ggf. andere Tools, die solche Skripte vernünftig verwalten? Gruß
×
×
  • Neu erstellen...