Zum Inhalt springen

Whiz-zarD

Mitglieder
  • Gesamte Inhalte

    2083
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    51

Reputationsaktivitäten

  1. Danke
    Whiz-zarD hat eine Reaktion von SuperMarios erhalten in Frage zu SQL-Aufgabe WHERE Datumsangaben   
    SELECT ... FROM ... WHERE AufnahmeDatum < DATE '2020-03-01' AND EntlassDatum > DATE '2020-02-01' Es werden die weggefiltert, die nach dem Februar 2020 aufgenommen und die, die vor dem Februar 2020 entlassen worden sind. Übrig bleiben die, die in den Betten lagen.
    Wenn es mit DATE nicht gemacht werden darf:
    SELECT ... FROM ... WHERE (MONTH(AufnahmeDatum) < 3 AND YEAR(AufnahmeDatum) = 2020) AND (MONTH(EntlassDatum) >= 2 AND YEAR(EntlassDatum) = 2020)  
  2. Like
    Whiz-zarD hat eine Reaktion von SuperMarios erhalten in Frage zu SQL-Aufgabe WHERE Datumsangaben   
    Stimmt. 😅
    Auch das stimmt. Bin zu sehr Oracle geschädigt. Da schreibt man es mit DATE. 😅
  3. Positiv
    Whiz-zarD hat eine Reaktion von SuperMarios erhalten in Frage zu SQL-Aufgabe WHERE Datumsangaben   
    Letzendlich ist alles eine Zahl.
    Ich bin mir jetzt nicht so ganz sicher, ob es zum SQL-Standard gehört aber für gewöhnlich verwenden die RDBMS das ISO 8601-Fomat. Also YYYY-MM-DD. Für andere Formate muss man eine Konvertierung vornehmen. In Oracle DB z.B. die TO_DATE()-Funktion.
    Wie das jetzt in der Abschlussprüfung bewertet wird, kann ich nicht sagen. Ist vermutlich auch unterschiedlich.
     
  4. Like
    Whiz-zarD reagierte auf Rienne in Frage zu SQL-Aufgabe WHERE Datumsangaben   
    Ein kleiner Fehler hat sich noch eingeschlichen: Beim Aufnahmedatum sollte das Jahr kleiner gleich 2020 sein und nicht nur gleich 2020.
    Ich glaube DATE benötigt es im klassischen SQL gar nicht. Lediglich die Formatierung muss passen. D.h. die Abfrage müsste lauten:
    SELECT ... FROM ... WHERE AufnahmeDatum <'2020-03-01' AND EntlassDatum >= '2020-02-01' Nachzulesen hier: https://www.w3schools.com/sql/sql_dates.asp
  5. Positiv
    Whiz-zarD hat eine Reaktion von SuperMarios erhalten in Frage zu SQL-Aufgabe WHERE Datumsangaben   
    Ist das nicht diese Aufgabe?
     
  6. Haha
    Whiz-zarD hat eine Reaktion von Pizzacorgie28 erhalten in Nur auszuwählende Zeichen akzeptieren C   
    Damit behebt man das Problem aber nur bedingt. scanf() scant solange den stdin, bis ein newline gefunden wird. Bei "%c" würde man also jedes Zeichen einzeln zurückgeben. Deswegen erscheit auch der Text zwei Mal, weil im Gegensatz zu Unix Windows ein anderes Vorgehen für new line hat. Wenn man nämlich '1' + Enter eingibt, werden drei Zeichen übertragen: '1', carriage return und new line. Also gibt scanf() zurück '1' zurück und dann carriage return. In deinem Beispiel würde er zwar carriage return ignorieren aber das Problem bestünde weiterhin, wenn der Benutzer z.B. "12" eingibt. Dann wird die Schleife wieder zwei Mal ausgeführt und dementsprechend wird der Text auch zwei Mal ausgewiesen.
    Wenn man das Problem in den Griff bekommen möchte, muss man etwas weiter ausholen, denn mit einem scanf() alleine kommt man hier nicht weit. scanf() ist auch nicht unbedingt dafür gedacht, Benutzereingaben entgegenzunehmen, sondern ist fürs Parsing von stdin gedacht. Das Parsing setzt aber schon voraus, dass die Daten in einer Strukturierten Form vorliegen. Das ist aber bei Benutzereingaben nicht der Fall. Die sind sehr willkürlich.
    Man könnte jetzt auf die Idee kommen, einfach per scanf() einen string einzulesen anstatt ein einzelnes Zeichen:
    char s[1]; scanf("%s", s); printf("%s", s); Dies ist aber nicht vor Speicherüberläufen geschützt. Wenn man jetzt "123" eingibt, würde "123" auch rauskommen, obwohl der String nur ein Zeichen belegt und die anderen beiden außerhalb des Bereiches liegen und somit vollkommen ungeschützt.
    Der ideale Weg wäre mit fgets() die stdin in einem Puffer zu lesen und diesen dann zu parsen. fgets() ist nämlich sicher vor Speicherüberläufen. Er stoppt, wenn der Puffer gefüllt ist, new line oder end of file erreicht ist. Jenachdem, was zu erst eintritt.
    Hier mal eine Funktion, die sicherstellt, dass der Benutzer auch wirklich nur ein Zeichen eingegeben hat:
    int readChar(char *c) { char puffer[10]; char temp[10]; fgets(puffer, sizeof(puffer), stdin); sscanf(puffer, "%s", temp); int length = strlen(temp); if(length == 1) { *c = temp[0]; return 0; } if(length == 0) return -1; if(length > 1) return 1; } Der Rückgabewert ist ein für C typisches Pattern um Fehlermeldungen darzustellen, da es ja keine Exceptions gibt. Bei 0 ist alles in Ordnung. Bei -1 hat der Benutzer nur die Enter-Taste gedrückt und bei 1 wurden zu viele Zeichen eingeben.
    Und nein, das hat alles nichts mit irgendwelchen Eigenheiten von C zu tun, sondern C ist eine ist zwar eine Hochsprache aber in einem sehr niedrigen Level und das was man mit anderen Sprachen mit einer Zeile machen kann, muss man hier schon selber schreiben.

  7. Danke
    Whiz-zarD hat eine Reaktion von JustALurker erhalten in Nur auszuwählende Zeichen akzeptieren C   
    Damit behebt man das Problem aber nur bedingt. scanf() scant solange den stdin, bis ein newline gefunden wird. Bei "%c" würde man also jedes Zeichen einzeln zurückgeben. Deswegen erscheit auch der Text zwei Mal, weil im Gegensatz zu Unix Windows ein anderes Vorgehen für new line hat. Wenn man nämlich '1' + Enter eingibt, werden drei Zeichen übertragen: '1', carriage return und new line. Also gibt scanf() zurück '1' zurück und dann carriage return. In deinem Beispiel würde er zwar carriage return ignorieren aber das Problem bestünde weiterhin, wenn der Benutzer z.B. "12" eingibt. Dann wird die Schleife wieder zwei Mal ausgeführt und dementsprechend wird der Text auch zwei Mal ausgewiesen.
    Wenn man das Problem in den Griff bekommen möchte, muss man etwas weiter ausholen, denn mit einem scanf() alleine kommt man hier nicht weit. scanf() ist auch nicht unbedingt dafür gedacht, Benutzereingaben entgegenzunehmen, sondern ist fürs Parsing von stdin gedacht. Das Parsing setzt aber schon voraus, dass die Daten in einer Strukturierten Form vorliegen. Das ist aber bei Benutzereingaben nicht der Fall. Die sind sehr willkürlich.
    Man könnte jetzt auf die Idee kommen, einfach per scanf() einen string einzulesen anstatt ein einzelnes Zeichen:
    char s[1]; scanf("%s", s); printf("%s", s); Dies ist aber nicht vor Speicherüberläufen geschützt. Wenn man jetzt "123" eingibt, würde "123" auch rauskommen, obwohl der String nur ein Zeichen belegt und die anderen beiden außerhalb des Bereiches liegen und somit vollkommen ungeschützt.
    Der ideale Weg wäre mit fgets() die stdin in einem Puffer zu lesen und diesen dann zu parsen. fgets() ist nämlich sicher vor Speicherüberläufen. Er stoppt, wenn der Puffer gefüllt ist, new line oder end of file erreicht ist. Jenachdem, was zu erst eintritt.
    Hier mal eine Funktion, die sicherstellt, dass der Benutzer auch wirklich nur ein Zeichen eingegeben hat:
    int readChar(char *c) { char puffer[10]; char temp[10]; fgets(puffer, sizeof(puffer), stdin); sscanf(puffer, "%s", temp); int length = strlen(temp); if(length == 1) { *c = temp[0]; return 0; } if(length == 0) return -1; if(length > 1) return 1; } Der Rückgabewert ist ein für C typisches Pattern um Fehlermeldungen darzustellen, da es ja keine Exceptions gibt. Bei 0 ist alles in Ordnung. Bei -1 hat der Benutzer nur die Enter-Taste gedrückt und bei 1 wurden zu viele Zeichen eingeben.
    Und nein, das hat alles nichts mit irgendwelchen Eigenheiten von C zu tun, sondern C ist eine ist zwar eine Hochsprache aber in einem sehr niedrigen Level und das was man mit anderen Sprachen mit einer Zeile machen kann, muss man hier schon selber schreiben.

  8. Like
    Whiz-zarD hat eine Reaktion von Pizzacorgie28 erhalten in Nur auszuwählende Zeichen akzeptieren C   
    Wozu willst du das Zeichen '1' noch in eine 1 umwandeln? Ich sehe hier keinen Bedarf für.
     
  9. Like
    Whiz-zarD hat eine Reaktion von Pizzacorgie28 erhalten in Nur auszuwählende Zeichen akzeptieren C   
    Ist vielleicht schon zu viel aber man könnte daraus auch Konstante, mittels der #define Direktive machen.
     
     
  10. Positiv
    Whiz-zarD hat eine Reaktion von JustALurker erhalten in Nur auszuwählende Zeichen akzeptieren C   
    Wozu willst du das Zeichen '1' noch in eine 1 umwandeln? Ich sehe hier keinen Bedarf für.
     
  11. Like
    Whiz-zarD hat eine Reaktion von Pizzacorgie28 erhalten in Nur auszuwählende Zeichen akzeptieren C   
    Ein char ist intern auch nur ein Zahlenwert, der exakt ein Byte groß ist. Komischer Zufall, wa? Historisch betrachtet ist ein Byte die Menge an Bits, die benötigt werden, um ein Zeichen darzustellen.  Mit Hilfe der ASCII-Tabelle weiß die Grafikkarte nun, wie das Zeichen mit dem Wert 98 aussieht. Es ist nämlich ein b. Der Weg geht auch andersrum. Man kann ein Zeichen in Hochkommata setzen und der Compiler wandelt es zurück in eine Zahl.  Du kannst dann also z.B.
    while (auswahl != 'b') { schreiben und der Compiler macht aus 'b' eine 98. Dasselbe gilt auch für deine if-Abfragen.
    Du kannst ja mal folgenden Code testen:
    printf("%d", 'b'); Du siehst, als Ergebnis kommt 98 raus.
  12. Like
    Whiz-zarD hat eine Reaktion von Pizzacorgie28 erhalten in Nur auszuwählende Zeichen akzeptieren C   
    %i ist aber auch nicht richtig. Ist b eine Zahl?
    Was hindert dich, die Eingabe zu machen, diese Eingabe auszuwerten, deine Ausgabe zu machen und dann wieder von vorne anzufangen?
  13. Like
    Whiz-zarD hat eine Reaktion von Pizzacorgie28 erhalten in Nur auszuwählende Zeichen akzeptieren C   
    Gibt ja noch mehr als nur Vergleichsoperatoren.
    Aber überlege mal, wie grafische Oberflächen funktionieren. Grafische Oberflächen laufen in einer Endlosschleife. Man könnte auch hier das gleiche Prinzip anwenden. Es wird immer wieder die Eingabe eingelesen, verarbeitet und etwas wird ausgegeben. Wie sieht also eine endlosschleife aus und wie müsstest du deinen Code umstrukturieren?
    Schaue auch mal dein scanf() an. Vorallem welches Format deine Eingabe haben muss und welche du erlauben möchtest.
  14. Positiv
    Whiz-zarD hat eine Reaktion von pr0gg3r erhalten in Klassendiagramm: Komposition/Aggregation   
    Wenn ich es richtig verstehe, dann haben Fahrzeug und Kunde ein Vertrag. Der Vertrag kann aber ohne Fahrzeug und Kunde existieren. Der Vertrag hat aber eine Rechnung und kann ohne diese Rechnung nicht existieren. Lösche ich also die Rechnung, ist auch der Vertrag weg.
    Für mich klingt es aber eher danach, als hätte man die Endpunkte der Rauten vertauscht. So wird eher ein Schuh drauß. Also:
    Vertrag hat Fahrzeug und Kunde und Fahrzeug und Kunde können ohne Vertrag existieren.
    Zusätzlich hat der Vertrag eine Rechnung aber die Rechnung kann ohne Vertrag nicht existieren. Lösche ich den Vertrag, ist die Rechnung weg.
     
  15. Positiv
    Whiz-zarD hat eine Reaktion von Fortschreitender erhalten in Fettnapf angemessene Ausbildungsvergütung   
    Ja, anstatt Rosenpickerei zu betreiben und einen Tarifvertrag herauszupicken, der in der eigenen Branche eh nicht gilt, nur um damit ~90 € Brutto im Monat mehr vergütet zu bekommen und dadurch ggf. beim Arbeitgeber negativ aufzufallen und somit sich evtl. seine Übernahmechancen verspielt, sollte man eher ein ruhiges Gespräch mit dem Arbeitgeber suchen und mit ihm über veränderte Lebenssituationen sprechen. Ggf. findet man hier eine Einigung. Man kann sich auch Berufsausbildungsbeihilfe (BAB) bei der Arbeitsagentur beantragen, wenn die Ausbildungsvergütung nicht reichen sollte.
    Keine Ahnung, wie andere IHKs dies handhaben aber neben Fachinformatiker bilden wir noch Bürokauffrauen/-männer aus und wir haben die Auflage von der IHK bekommen, dass alle Azubis die gleiche Vergütung bekommen müssen. Damit die Fachinformatiker-Bewerber sich für uns entscheiden, mussten wir die Vergütung erhöhen. Das hatte auch zur Folge, dass wir die Vergütung für die Bürokauffrauen/-männer anpassen mussten. Da entstand eine zusätzliche finanzielle Belastung für das Unternehmen. Also einfach mal die Vergütung anzuheben muss nicht immer funktionieren.
  16. Danke
    Whiz-zarD hat eine Reaktion von Fortschreitender erhalten in Fettnapf angemessene Ausbildungsvergütung   
    Und der einschlägige Tarifvertrag für dich ist was? Du arbeitest in einer eine Werbeagentur und nicht in einem Elektro- oder Metall-Betrieb. Der IGM-Tarifvertrag gilt hier nicht. Das ist ja der Witz an deinem Gerichtsurteil. Der ist hier nutzlos, da es sich bei dem Urteil um einen Industriemechaniker ging.
  17. Danke
    Whiz-zarD hat eine Reaktion von 0x00 erhalten in IHK - Bewertungskriterium bei SQL-Abfragen   
    So funktioniert das nicht.
    Der Witz ist ja, dass man möchte, dass die Datenbank dies herausfinden soll und nicht du. Du gibst lediglich der Datenbank mit, welche Kriterien erfüllen sein müssen. Stell dir vor, anstatt nur den vier oder fünf Datensätzen hättest du jetzt 50.000+ Datensätze. Viel Spaß beim Suchen.
  18. Positiv
    Whiz-zarD hat eine Reaktion von Bitschnipser erhalten in Anwendungsentwicklung: kein Ausbilder und keine Programmierung   
    Es gibt kein Bachelor-Diplom... 🙄
  19. Haha
    Whiz-zarD hat eine Reaktion von allesweg erhalten in Anwendungsentwicklung: kein Ausbilder und keine Programmierung   
    Was immer vergessen wird: Ein Studium ist keine Berufsausbildung...
     
    Studium abgebrochen, FIAE-Ausbildung angefangen und Studium weitergemacht? Und jetzt im öD, obwohl du doch in einer größeren Firma arbeiten wolltest, wegen der besseren Aufstiegschancen und das ist erst ein Jahr her. Aha...
    Klingt eher wie Geschichten aus dem Paulanergarten.
     
  20. Haha
    Whiz-zarD hat eine Reaktion von 0x00 erhalten in Anwendungsentwicklung: kein Ausbilder und keine Programmierung   
    Was immer vergessen wird: Ein Studium ist keine Berufsausbildung...
     
    Studium abgebrochen, FIAE-Ausbildung angefangen und Studium weitergemacht? Und jetzt im öD, obwohl du doch in einer größeren Firma arbeiten wolltest, wegen der besseren Aufstiegschancen und das ist erst ein Jahr her. Aha...
    Klingt eher wie Geschichten aus dem Paulanergarten.
     
  21. Like
    Whiz-zarD hat eine Reaktion von tkreutz2 erhalten in PDF-Bücher   
    https://www.gesetze-im-internet.de/urhg/__60a.html
    Danach wird es schwierig. Viele Verlage haben aber auch ein Lizenzprogramm für Schulen.
  22. Danke
    Whiz-zarD hat eine Reaktion von allesweg erhalten in Fettnapf angemessene Ausbildungsvergütung   
    Und der einschlägige Tarifvertrag für dich ist was? Du arbeitest in einer eine Werbeagentur und nicht in einem Elektro- oder Metall-Betrieb. Der IGM-Tarifvertrag gilt hier nicht. Das ist ja der Witz an deinem Gerichtsurteil. Der ist hier nutzlos, da es sich bei dem Urteil um einen Industriemechaniker ging.
  23. Like
    Whiz-zarD hat eine Reaktion von maestro impostor erhalten in Fettnapf angemessene Ausbildungsvergütung   
    Und der einschlägige Tarifvertrag für dich ist was? Du arbeitest in einer eine Werbeagentur und nicht in einem Elektro- oder Metall-Betrieb. Der IGM-Tarifvertrag gilt hier nicht. Das ist ja der Witz an deinem Gerichtsurteil. Der ist hier nutzlos, da es sich bei dem Urteil um einen Industriemechaniker ging.
  24. Danke
    Whiz-zarD hat eine Reaktion von Crescendo erhalten in Fettnapf angemessene Ausbildungsvergütung   
    Und der einschlägige Tarifvertrag für dich ist was? Du arbeitest in einer eine Werbeagentur und nicht in einem Elektro- oder Metall-Betrieb. Der IGM-Tarifvertrag gilt hier nicht. Das ist ja der Witz an deinem Gerichtsurteil. Der ist hier nutzlos, da es sich bei dem Urteil um einen Industriemechaniker ging.
  25. Like
    Whiz-zarD hat eine Reaktion von meyjavafan erhalten in Eigenes Offline Entertainment System   
    Wieso fragst du nicht deine Arbeitskollegen? 🙄
     

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...