sql query, um bestimten datensatz zu finden

sinclair

Aktives Mitglied
Hallo leute

Ich muss in der firma ein tool programmieren, welches meinem ausbildner die absenzen immer ende des monats schickt.
Ich habe mir folgendes èberlegt:
Ende des monats, öffne ich das tool, gebe den monat an, dann werden die daten aufgearbeitet und per mail verschickt.
Den mailversand habe ich programmiert, ich bleibe allerdings bei der query stecken.
Folgend die tabelle:
day_id INTEGER NOT NULL AUTO_INCREMENT,
working_day DATE NOT NULL,
person_NO INTEGER NOT NULL,
project_NO INTEGER NOT NULL,
ist_time DECIMAL NOT NULL,
activity_NO INTEGER NOT NULL,
PRIMARY KEY (day_id)

Für uns ist die person_NO, project_NO, sowie activity_No von bedeutung.
Folgend die methode, die noch nichts gescheites bezüglich der abfrage macht:
Java:
public class Queries
{

private ResultSet resultSet;

public boolean getAbsenzen(Integer monat)
	{
		Connection conn = MySQLConnection.getInstance();
		if (conn != null)
		{
			try
			{
				String sql = "SELECT *FROM az_item";
				PreparedStatement prStatement = conn.prepareStatement(sql);
prStatement.setInt(1, monat);
				resultSet = prStatement.executeQuery(sql);
				return true;

			}

			catch (SQLException e)
			{
				e.printStackTrace();
			}

		}
		return false;
	}

public ResultSet getResultSet()
	{
		return resultSet;
	}
 
}
Nun gut, die idee ist, ich übergebe einen paramether für jan z.b 1, dann hole ich alle datensätze vom monat januar aus, die folgende bedingungen erfüllen:
Entweder krankheit oder arztbesuch. Beide haben eine festgelegte id.
Von der tatsache abgesehen, dass ich wenig bis nie mit sql zu tun hatte und das erst nächstes jahr kommt, habe ich überhaupt keinen plan, wie ich die abfrage machen soll?
Danke für eure rasche antwort^^
 

Joose

Top Contributor
Grob gesagt:
SELECT * FROM [Tablename] WHERE [Spaltename] = [WERT];

Schaue dir einfach mal die Grundlagen zu SQL an und versuche es selbst um zusetzen.
Den Teil der WHERE Clause kann man mit mehreren Bedingungen beliebig ausbauen und diese Bedingungen mit (), AND und OR verknüpfen.

Um dir das Statement zusammenzubauen solltest du PreparedStatements verwenden und nicht versuchen String zu verketten (Ursache für SQL Injection)
 

sinclair

Aktives Mitglied
halloo
wie meinst du, ich sollte mir keine strings zusammenbasteln?^^
und wie sollte ich das mit dem Monat machen? es gibt doch sicher eine Funktion in SQL, oder?
 

Joose

Top Contributor
wie meinst du, ich sollte mir keine strings zusammenbasteln?^^

Viele schreiben dann Code wie in diesem Beispiel:
Java:
    String sql = "SELECT *FROM Users WHERE U_ID  = " + id;
    PreparedStatement prStatement = conn.prepareStatement(sql);
    resultSet = prStatement.executeQuery(sql);

Dadurch sind SQL Injections (Begriff bitte selber nachschlagen) möglich, daher sollte der Code wie folgt ausschauen:

Java:
    String sql = "SELECT *FROM Users WHERE U_ID  = ?";
    PreparedStatement prStatement = conn.prepareStatement(sql);
    prStatement.setInt(1, id); // die variable id ist ein parameter der methode die diesen code ausführt 
    resultSet = prStatement.executeQuery(sql);

und wie sollte ich das mit dem Monat machen? es gibt doch sicher eine Funktion in SQL, oder?

Das hängt teilweise von der Datenbank ab die du verwendest.
Jede Datenbank versteht zwar SQL doch gibt es teilweise Unterschiede in der Syntax bzw. bei "Build-In" Methoden.
Also je nachdem welche Datenbank du verwendest schaue einfach mal nach welche SQL Methoden angeboten werden für den Datentyp DATE.
 

sinclair

Aktives Mitglied
hallo
also, ich habe was zusammengestellt, schau mal..^^
String sql = "SELECT person_NO, activity_NO FROM az_item WHERE person_NO =222 AND activity_NO =14821 OR activity_NO =14823";
meine Gedanken:
hole die Person mit der id 222, dann hole mir die datensätze der Person, welche die activity_No =14821 oder 14823 hat.
das mit dem Datum lass ich jetzt mal, schau ich mir später an, wenn das mal sitzt^^..
danke
 

Joose

Top Contributor
Am besten wäre es diese Statement einfach auszuführen und zu kontrollieren ob das Ergebnis stimmt!

Kleiner Hinweis: Dein Statement sagt folgendes aus:
Selektiere die person_NO und activity_NO aus der Tabelle az_Item, wo die person_NO "222" ist und die activitiy_NO "14821" ist, oder wo die activity_NO "14823" ist.

Klammersetzung ist in SQL ebenfalls wichtig!
 

sinclair

Aktives Mitglied
hallo
und jetzt?
String sql = "SELECT person_NO, activity_NO FROM az_item WHERE person_NO =222 (activity_NO =14821 OR activity_NO =14823)";
das will aber leider trotzdem nicht funktionieren..
weisst du an was das liegt?
 

Joose

Top Contributor
das will aber leider trotzdem nicht funktionieren..

"will nicht funktionieren" ist keine Fehlerbeschreibung.
Normalerweise fliegen Exceptions mit Fehlermeldungen diese solltest du mitposten.

String sql = "SELECT person_NO, activity_NO FROM az_item WHERE person_NO =222 (activity_NO =14821 OR activity_NO =14823)";

Diese Statement ist falsch was die Syntax angeht. Wo ist das "AND" hinverschwunden in der WHERE Bedingung?
 

sinclair

Aktives Mitglied
sorry, hat sich selbstständig gemacht, folgend mit Änderungen und Datum:
String sql = "SELECT person_NO, activity_NO FROM az_item WHERE person_NO =222 and (activity_NO =14821 OR activity_NO =14823) and YEAR (NOW) and MONTH (?)";
exception:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?)' at line 1
das meine Syntax für die katz ist, ist mir schon klar, dank dieser exception, aber was stimmt nicht genau?
 
Zuletzt bearbeitet:

Joose

Top Contributor
"?" ist nur ein Platzhalter im Statement, diesen musst du natürlich noch mit einen Wert ersetzen.

Hierzu nochmal das Beispiel von oben:
Java:
String sql = "SELECT * FROM Users WHERE U_ID = ?"; // Definieren des Statements mit Platzhalter
PreparedStatement prStatement = conn.prepareStatement(sql); // Statement preparen
prStatement.setInt(1, id); // mit dem Aufruf dieser "set"-Methode wird der 1.Parameter als INT Wert gesetzt -> sprich das Fragezeichen wird mit einem Wert ersetzt
resultSet = prStatement.executeQuery(sql); // statement ausführen
 

sinclair

Aktives Mitglied
hallo
ja, das habe ich schon so gemacht, sorry, habe nicht den ganzen code gepostet, dachte es liegt sicher an der query..
Java:
private boolean getAbsenzen(Integer monat)
	{
		Connection conn = MySQLConnection.getInstance();
		if (conn != null)
		{
			try
			{
				String sql = "SELECT person_NO, activity_NO FROM az_item WHERE person_NO =222 and (activity_NO =14821 OR activity_NO =14823) and  YEAR (NOW) and MONTH (?)";
				PreparedStatement prStatement = conn.prepareStatement(sql);
				prStatement.setInt(1, monat);

				resultSet = prStatement.executeQuery(sql);

				return true;

			}//catchklausel wurde weggelassen
 

Joose

Top Contributor
Hole dir am besten einen SQL Browser in diesem kann man leicht Statements testen.
Was mir aufgefallen ist bei NOW fehlen die "()".
 

sinclair

Aktives Mitglied
hallo

ich habe das jetzt andrs gemacht, jetzt übergebe ich zwei strings, startdatum und Enddatum.
Java:
String sql = "SELECT person_NO, activity_NO FROM az_item WHERE person_NO =222 and (activity_NO =14821 OR activity_NO =14823) and working_day BETWEEN ? AND ?";
				PreparedStatement prStatement = conn.prepareStatement(sql);
				prStatement.setString(1, startMonth);
				prStatement.setString(2, endMonth);
leider bekomme ich die folgende exception:
exception:
java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
nach langem googeln habe ich gesehen, das das ein Problem ist, welche viele leute hatten/haben.
das Apostroph beim Fragezeichen muss wohl sein, habe es auch ohne getestet, will nicht gehen..
hast zuvällig zu dem eine Idee?
 

fehlerfinder

Bekanntes Mitglied
Hallo Sinclair,

aaalso - da gibt's eine ganze Reihe von Baustellen in deiner Statement-Historie ;-)

Ich fange mal mit deinem letzten Posting an. Was meinst du mit "Apostroph beim Fragezeichen"? Meinst du damit die Anführungszeichen nach dem zweiten Fragezeichen? Die gehören in diesem Fall nicht zum SQL-Statement, sondern begrenzen deinen >String sql = "...";< - gehören also schlicht zur Java-Syntax und dürfen entsprechend auch nicht weggelassen werden.

Deine "working_day"-Spalte ist als "DATE" definiert. Wenn du jetzt zwei Strings (startMonth und endMonth) für die Parameter (also letztlich die Fragezeichen) einsetzt, wirst du nicht auf einen grünen Zweig kommen (String != DATE). Du hast zwei Möglichkeiten:

a) du übergibst ein ordnungsgemäß formatiertes Datum (die Syntax kenne ich nicht auswendig, aber das findest du sicherlich raus)
oder
b) du übergibst eine Zahl (prStatement.setInt()) und fragst die dann in deinem Stament mit etwas in der Art "month(working_day) between ? and ?" ab (ob es das "month()" so gibt, weiß ich nicht, da schau mal in die SQL-Doku deiner DB).

Und jetzt zu deinen früheren Versuchen:
In Posting #11 steht z.B. so etwas wie "and YEAR (NOW) and MONTH (?)". Das kann nicht funktionieren, weil du da gar keinen Vergleich ausführst. Du meinst eventuell so etwas wie "year(now()) = year(working_day)" (falls es denn die Funktion year() gibt).

In #13 schreibst du "die YEAR und MONTH Funktion, die habe ich nich in meiner Tabelle, habe nur den typ DATE." - Da musst du zunächst einmal deutlich zwischen der Definition deiner Tabelle (mit den zugehörigen Datentypen) und den von deinem Datenbank-System zur Verfügung gestellten Funktionen unterscheiden. Funktionen können (müssen nicht) auf Spalten, und damit letztlich auf Datentypen, angewendet werden. Aber Funktion und Typ ist nicht dasselbe.
 

sinclair

Aktives Mitglied
hallo

sorry, hatte die letzten tage schule..
ich habe mal einige Veränderungen wider vorgenommen, dass mal werde ich euch meherere cods posten.

Java:
	private static Date getStartDate(String day) throws ParseException
	{
		Calendar now = Calendar.getInstance();
		String nowYear = String.valueOf(now.get(Calendar.YEAR));
		String nowMonth = String.valueOf(now.get(Calendar.MONTH));
		String fullDate = nowYear + "-" + nowMonth + "-" + day;
		SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy");
		java.util.Date date = sdf1.parse(fullDate);
		java.sql.Date sqlFullDate = new java.sql.Date(date.getTime());
		return sqlFullDate;
	}
folgende Überlegung, es wird der tag als paramether übergeben, es ist ein string, fragt mich nicht, wieso ich ausgerechnet einen string genommen habe, hatte schon den anfänglichen code so..
zurückgegeben wird das Datum, sqlDate.
folgend die main Funktion:
Java:
Queries queries = new Queries(getStartDate("01"), getStartDate("28"));

in diesem Beispiel werden die tage 01 und 28 als string übergeben, gleich kommt die query klasse, um das Verständnis für die Überlegung zu haben.

Java:
public Queries(Date startDate, Date endDate)
	{
		getAbsenzen(startDate, endDate);
	}

	private boolean getAbsenzen(Date startDate, Date endDate)
	{
		Connection conn = MySQLConnection.getInstance();
		if (conn != null)
		{
			try
			{
				String sql = "SELECT person_NO, activity_NO, working_day FROM az_item WHERE person_NO =222 and (activity_NO =14821 OR activity_NO =14823) and working_day BETWEEN '?' and '?'";

				PreparedStatement prStatement = conn.prepareStatement(sql);
				prStatement.setDate(1, (java.sql.Date) startDate);
				prStatement.setDate(2, (java.sql.Date) endDate);
return true;
}
im konstruktor übergeben wir die zwei Daten, welche von der main Methode sind, im konstruktor selber, rufen wir die abfrage auf, welche zwei Daten erwartet.
leider bekomme ich immer noch, diese Gott verdammte Meldung:

java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
leute, ich muss unbedingt diese Woche fertig werden^^..
daher bitte ich euch das mal genauer unter die lupe zu nehmen.
 

Joose

Top Contributor
Java:
				String sql = "SELECT person_NO, activity_NO, working_day FROM az_item WHERE person_NO =222 and (activity_NO =14821 OR activity_NO =14823) and working_day BETWEEN '?' and '?'";

java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).

Lass die Hochkommas bei den Fragezeichen einfach weg. Damit werden die Fragezeichen nicht als Parameter sondern normaler String des Statements gesehen.
Wenn du die Parameter setzt werden die benötigten Hochkommas automatisch hinzugefügt. Sprich du musst dich nicht darum sorgen ob du nun Hochkommas brauchst oder nicht.
 

sinclair

Aktives Mitglied
hallo
ja, das habe ich auch schon ausprobiert, dann kommt folgende exception:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? and ?' at line 1
p.s:
ist übrigens ein gutes Forum, die antwortzeiten sind rekordreif^^.
 
Zuletzt bearbeitet:

Joose

Top Contributor
Wie weiter oben schon gesagt hast du probiert diese Statement in einem SQL Browser Tool (Squirrel, ...) durchzuführen?
Funktioniert es dort?
(Dort musst du deine Parameter natürlich durch richtige Werte ersetzen)

Ansonsten könntest du dein Statement mal alternativ umschreiben auf:
"WHERE working_day >= ? AND working_day <= ?"
 
Zuletzt bearbeitet:

sinclair

Aktives Mitglied
hallo
String sql = "SELECT person_NO, activity_NO, working_day FROM az_item WHERE person_NO =222 and (activity_NO =14821 OR activity_NO =14823) AND working_day >=? AND working_day <=?";
ohne das '',
exception:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? AND working_day <=?' at line 1
mit ''
String sql = "SELECT person_NO, activity_NO, working_day FROM az_item WHERE person_NO =222 and (activity_NO =14821 OR activity_NO =14823) AND working_day >='?' AND working_day <='?'";
java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
ich habe folgendes getestet, mit der SQL Konsole, meinst du das mit browser?
SQL:
SELECT person_NO, activity_NO, working_day FROM az_item WHERE person_NO =222 and (activity_NO =14821 OR activity_NO =14823) AND working_day BETWEEN 01-01-2014 AND working_day BETWEEN '01.01.2015';
Ergebnis der Konsole ist positiv..
was heisst es für uns jetzt genau?
stimmt irgendwas mit dem Java code nicht?
 

Joose

Top Contributor
mit ''
String sql = "SELECT person_NO, activity_NO, working_day FROM az_item WHERE person_NO =222 and (activity_NO =14821 OR activity_NO =14823) AND working_day >='?' AND working_day <='?'";
java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).

Ja das ist ja auch korrekt, die Fehlermeldung besagt das du auf Index 1 einen Parameter setzen willst, es gibt aber keine Parameter da diese durch das Hochkomma nicht erkannt werden.

String sql = "SELECT person_NO, activity_NO, working_day FROM az_item WHERE person_NO =222 and (activity_NO =14821 OR activity_NO =14823) AND working_day >=? AND working_day <=?";
ohne das '',
exception:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? AND working_day <=?' at line 1

Kommt diese Fehlermeldung beim Ausführen des Statements oder schon beim prepare des Statements?

ich habe folgendes getestet, mit der SQL Konsole, meinst du das mit browser?

Es gibt unterschiedliche Arten, einfach ein Programm um sich Strukturen und Daten der Datenbank anzuschauen und wenn notwendig zu editieren etc.
Ob das nun inkl UI geschieht oder nur auf der Konsole ist egal.

SQL:
SELECT person_NO, activity_NO, working_day FROM az_item WHERE person_NO =222 and (activity_NO =14821 OR activity_NO =14823) AND working_day BETWEEN 01-01-2014 AND working_day BETWEEN '01.01.2015';
Ergebnis der Konsole ist positiv..

Dieses Statement schaut sehr komisch aus ... "Column BETWEEN Value AND Column BETWEEN Value" ....
Außerdem was bedeutet das Ergebnis ist positiv? Bekommst du die Zeilen geliefert die geliefert bekommen willst? Keine mehr oder weniger?
 

sinclair

Aktives Mitglied
sorry, die SQL query für die SQL Konsole war so:
String sql = "SELECT person_NO, activity_NO, working_day FROM az_item WHERE person_NO =222 and (activity_NO =14821 OR activity_NO =14823) AND working_day BETWEEN '?' AND '?'";
was ich in einigen Beispielen gesehen habe, es wird der / statt - verwendet.. habe in meiner string Funktion das - entfernt und ein / hingezaubert..
Ergebnis für mich heisst, es werden keine datensätze angezeigt, was auch soweit stimmt..
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? AND ?' at line 1
das kommt, nach dem das preparStatement ausgeführt wurde.
java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
wenn ich die hochkomatas setze, kommt ja diese exception, du sagtest, das wäre logisch, inwiefern logisch?
 

Joose

Top Contributor
was ich in einigen Beispielen gesehen habe, es wird der / statt - verwendet.. habe in meiner string Funktion das - entfernt und ein / hingezaubert..

Klar die Datumsformatierung kann zu einem Problem werden aber in diesem Fall sollte dies nicht die Ursache sein.

java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
wenn ich die hochkomatas setze, kommt ja diese exception, du sagtest, das wäre logisch, inwiefern logisch?

Alles unter Hochkommas ist für SQL ein String der als solches anzusehen ist. Sprich das Fragezeichen ist in diesem Fall nur ein String und nicht der Platzhalter für einen Parameter.
So wird verhindert das ein gewolltes Fragezeichen (zum Beispiel bei Beschreibungen) als Platzhalter gesehen wird.
Die Exception sagt aus das du einen Parameter setzen willst obwohl es gar keine gibt, da er keine finden kann.

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? AND ?' at line 1
das kommt, nach dem das preparStatement ausgeführt wurde.

Hast du schon mal kontrolliert welche Version dein MySQL Server hat und ob Parameter bei dieser schon unterstützt werden?
 

sinclair

Aktives Mitglied
hmm, ja, die Version unterstützts eigentlich schon.. habe aber trotzde mal, die aktuellste Version gedownloadet..
sonst lassen wir das, aber vielen dank.. werde mit meinem ausbildner darüber reden, wobei es den eindruck macht, das er nicht mit SQL bewandert ist..
 

sinclair

Aktives Mitglied
meine Version sollte das eigentlich schon unterstützen...
habe jetzt aber mal das neuste update installiert..
naja ich glaube, wir kommen da nicht so recht weiter mit meinem Problem...
trotzdem danke..
 

dzim

Top Contributor
Worauf er anspielt, ist wahrscheinlich, dass es auf uns so wirkt, als hättest du dich generell noch nicht so viel mit SQL beschäftigt. In dem Fall wäre ein Buch, oder eine sonstige Lektüre, sinnvoll, damit du strukturiert in die Thematik rein kommst. Klar werden konkrete Fälle sowohl hier im Forum, als auch auf StackOverflow viel diskutiert, aber dabei geht es um konkrete SQL-Query-Probleme. Nicht um teilweise so offensichtliche Verständnisprobleme mit SQL als solchen. Dafür sind Bücher und Tutorials geeigneter.
Ich kann von mir z.B. sagen, dass ich nicht sehr gut etwas Erklären kann, also hilft es nicht, wenn ich Anfängern versuche etwas zu verdeutlichen - dabei scheitere ich kläglich. Fortgeschrittene kommen dagegen meist hinterher, weil sie so ungefähr wissen, worüber ich rede.
Verstehst du, was ich meine?
 

sinclair

Aktives Mitglied
Worauf er anspielt, ist wahrscheinlich, dass es auf uns so wirkt, als hättest du dich generell noch nicht so viel mit SQL beschäftigt. In dem Fall wäre ein Buch, oder eine sonstige Lektüre, sinnvoll, damit du strukturiert in die Thematik rein kommst. Klar werden konkrete Fälle sowohl hier im Forum, als auch auf StackOverflow viel diskutiert, aber dabei geht es um konkrete SQL-Query-Probleme. Nicht um teilweise so offensichtliche Verständnisprobleme mit SQL als solchen. Dafür sind Bücher und Tutorials geeigneter.
Ich kann von mir z.B. sagen, dass ich nicht sehr gut etwas Erklären kann, also hilft es nicht, wenn ich Anfängern versuche etwas zu verdeutlichen - dabei scheitere ich kläglich. Fortgeschrittene kommen dagegen meist hinterher, weil sie so ungefähr wissen, worüber ich rede.
Verstehst du, was ich meine?

zu meiner schande muss ich auch sagen, dass ich mich nur sporardisch mit dem beschäftigt habe..
und ja, ich habe dich verstanden..
 

fehlerfinder

Bekanntes Mitglied
Java:
	private static Date getStartDate(String day) throws ParseException
	{
		Calendar now = Calendar.getInstance();
		String nowYear = String.valueOf(now.get(Calendar.YEAR));
		String nowMonth = String.valueOf(now.get(Calendar.MONTH));
		String fullDate = nowYear + "-" + nowMonth + "-" + day;
		SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy");
		java.util.Date date = sdf1.parse(fullDate);
		java.sql.Date sqlFullDate = new java.sql.Date(date.getTime());
		return sqlFullDate;
	}

Du hast da ein Problem mit deinem Datum. Der String fullDate hat z.B. den Wert "2014-12-06", dein SimpleDateFormat sdf1 erwartet aber etwas wie "06-12-2014".
 

sinclair

Aktives Mitglied
hallo leute

ich habe mein Problem wegem Datum gelöst..
allerdings muss ich etwas ergänzen:
und ich weiss nicht so recht, wie ich die abfrage machen soll..
man stelle sich folgendes vor:
es gibt zwei Tabellen, in einer trägt man das projekt ein, Datum, Zeitdauer usw..
eine andere Tabelle gibt es, mit der kann man sehen, ob er an diesem tag gearbeitet hat:
Tabelle: az
working_day day_name soll_time
1997-01-01 Wed 0.00
1997-01-02 Thu 0.00
1997-01-03 Fri 8.00
1997-01-04 Sat 0.00
1997-01-05 Sun 0.00
1997-01-06 Mon 8.00
bei feier tage ist es halt 0.00, nun sollte ich irgendwie herausfinden, wo ich in der anderen Tabelle z.b einen tag vergessen habe und ich aber eigentlich, laut dieser Tabelle arbeiten musste.. versteht ihr was ich mein?
 

fehlerfinder

Bekanntes Mitglied
ich habe mein Problem wegem Datum gelöst..
Verrätst du uns auch noch, wie du das gelöst hast bzw. was der Fehler war? Es gibt ja doch immer mal wieder Leute, die mit Hilfe der Suchfunktion eine Problemlösung finden möchten und wenn dann da steht "ich habe mein Problem gelöst" ist das nicht wirklich hilfreich. (Es gibt leider tonnenweise genau diese "Lösungen" in den Foren dieser Welt:-( ) Als kleine Anerkennung für Hilfe, die dir hier zuteil wird, wäre das durchaus eine sinnvolle Ergänzung zu diesem Thread ;-)

allerdings muss ich etwas ergänzen:
und ich weiss nicht so recht, wie ich die abfrage machen soll..
man stelle sich folgendes vor:
es gibt zwei Tabellen, in einer trägt man das projekt ein, Datum, Zeitdauer usw..
eine andere Tabelle gibt es, mit der kann man sehen, ob er an diesem tag gearbeitet hat:
Tabelle: az
working_day day_name soll_time
1997-01-01 Wed 0.00
1997-01-02 Thu 0.00
1997-01-03 Fri 8.00
1997-01-04 Sat 0.00
1997-01-05 Sun 0.00
1997-01-06 Mon 8.00
bei feier tage ist es halt 0.00, nun sollte ich irgendwie herausfinden, wo ich in der anderen Tabelle z.b einen tag vergessen habe und ich aber eigentlich, laut dieser Tabelle arbeiten musste.. versteht ihr was ich mein?

Ehrliche Antwort? - Nein, ich verstehe nicht, was du meinst (und da solange niemand geantwortet hat, geht das wohl mehreren so...)

Mein ehrlicher (wenn auch etwas unbequemer) Rat:
Bemühe dich, es so zu formulieren, dass du selber davon überzeugt bist, das andere es auch verstehen können!!! Das hat den Vorteil, dass dir eher geholfen werden kann (und wird) und kann den angenehmen Nebeneffekt haben, dass du - einfach weil du dich mal richtig in die Problematik hinein "kniest" - selber Schritte zur Lösung findest (wobei du diese Schritte dann wiederum auch in weitere Fragen einbauen kannst).

Mal ganz nebenbei: die Aufnahme von "day_name" in deine az-Tabelle ist überflüssig, denn der Name ergibt sich automatisch aus dem Datum. Die Info, ob du an einem bestimmten Tag hättest arbeiten sollen, ist ja offensichtlich vom Wochentagsnamen unabhängig, sondern einzig in der Spalte soll_zeit (oder target_time - aber doch nicht soll_time... ;-) ) ablesbar.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Zrebna PostgreSQL-Query in eine MicrosoftSQL-Query konvertieren - chatGPT hilft nur bedingt. Datenbankprogrammierung 3
L JPA EclipseLink PostgreSQL auslesen mit Query Datenbankprogrammierung 2
T TRIM in Query Datenbankprogrammierung 3
D sql query in methode mit rückgabetyp Datenbankprogrammierung 14
OnDemand Mysql Query Builder Datenbankprogrammierung 1
P Herausfinden wann Query null zurück gibt? Datenbankprogrammierung 1
OnDemand SQL Query Optimierung Datenbankprogrammierung 28
Kirby.exe Verwirrung beim Query Datenbankprogrammierung 4
I Hibernate / JPA - Spaltenname von Query (Select) bekommen Datenbankprogrammierung 6
M Oracle Query umbauen (sind die Querys gleich?) Datenbankprogrammierung 5
B Frage bei einer SQL Query Datenbankprogrammierung 3
C Fehlerhafte SQL Query Datenbankprogrammierung 4
B MySQL Query (Anfängerfrage :D) Datenbankprogrammierung 3
B JPA / HQL Support bei Query - Distanzberechnung Datenbankprogrammierung 0
D JPQL- Query über mehrere Tabellen Datenbankprogrammierung 7
Thallius MySQL Was ist falsch an dem Query? Datenbankprogrammierung 2
Thallius MySQL Wo ist der Fehler in dem Query? Datenbankprogrammierung 2
OnDemand MySQL SQL Query Datenbankprogrammierung 2
X SQLite Erhalte bei Query INSERT INTO eine NullPointerException Datenbankprogrammierung 10
B Leerzeichen nach Umlaut -> Sichtbar erst nach Query! Datenbankprogrammierung 6
OnDemand SQL Query Anzahl der Werte Datenbankprogrammierung 8
H MySQL Anderer Query-Ansatz? Datenbankprogrammierung 4
P Tricky SQL Query Datenbankprogrammierung 3
P SQL Query Problem Datenbankprogrammierung 14
I Nullpointer bei einfacher Daba query Datenbankprogrammierung 12
I Query für Geburtstage Datenbankprogrammierung 6
S MYSQL: "Packet for query is too large" Datenbankprogrammierung 0
S HSQLDB PrepareStatement- Falsche query Datenbankprogrammierung 2
F Oracle The parameter name [...] in the query's selection criteria does not match any parameter name d Datenbankprogrammierung 2
J Fehler bei mySQL Query Datenbankprogrammierung 19
R MySQL berechnete Spalte im selben query weiterverwenden? Datenbankprogrammierung 4
S MySQL Hochkommata in Query Datenbankprogrammierung 7
M Problem beim Erstellen einer Query Datenbankprogrammierung 7
D SQL Update auf eine Query möglich? Datenbankprogrammierung 4
T HQL Query funktioniert nicht? Datenbankprogrammierung 8
M PostgreSQL Hibernate Query Restriction Datenbankprogrammierung 2
N Query für Derby DB mit Enterbrise Bean Datenbankprogrammierung 4
algebraiker Eclipse RCP - no persistent classes found for query class Datenbankprogrammierung 4
M List aus Hibernate Query Datenbankprogrammierung 5
M JPA-Query - nicht das komplette Objekt Datenbankprogrammierung 4
M Problem mit Hibernate und Named Query Datenbankprogrammierung 1
S DB2 Eclipselink Query Datenbankprogrammierung 2
LadyMilka Ergebnistyp HQL-Query Datenbankprogrammierung 3
M Frage zu folgender Query in EJB-QL Datenbankprogrammierung 4
Eldorado MySQL HQL Query Tag von Date Datenbankprogrammierung 6
H DB auslesen (Hibernate, Query, Parameter) Datenbankprogrammierung 8
C Split String für SQl query Datenbankprogrammierung 10
C setSelectedValue in SQL Query übergeben Datenbankprogrammierung 20
D Hibernate: Query verarbeiten Datenbankprogrammierung 11
B Hibernate, einfaches Query Ausgeben Datenbankprogrammierung 4
X Select Query auf Substring Datenbankprogrammierung 2
L Query grafisch erzeugen Datenbankprogrammierung 6
N SQL Query Browser Error Datenbankprogrammierung 6
B Suche Query um genau einen Wert einer def. Gruppe aus einer Tabelle zu erhalten. Datenbankprogrammierung 2
Chtonian Effizientes Query System für Wortnachschlagewerk Datenbankprogrammierung 9
D Hibernate, Criteria Query Datenbankprogrammierung 2
T JPQL Query für eine Tabellenansicht Datenbankprogrammierung 2
G JPQL L*KE / JPA Query Language Datenbankprogrammierung 9
O SQL-Query bringt Fehler Datenbankprogrammierung 4
D kurze Frage zu einem Query Datenbankprogrammierung 6
S Query aus Querys Datenbankprogrammierung 14
P [Hibernate] Criterion-Query in HQL übersetzen Datenbankprogrammierung 10
D Neuer Query wird nicht erkannt Datenbankprogrammierung 10
E Wie koennte die SQL Query aussehen? Datenbankprogrammierung 13
B mysql query ausführen Datenbankprogrammierung 4
N Fehler beim matchen von Strings via Query Datenbankprogrammierung 2
G How to put SQL query result into a file Datenbankprogrammierung 3
B Ein Query mit Mysql erzeugen Datenbankprogrammierung 6
G Hilfe bei Query für Spaltenansicht. Datenbankprogrammierung 20
A Fehler bei query Datenbankprogrammierung 7
G SQL-Query Methode Datenbankprogrammierung 4
F SQLite Datensatz löschen Datenbankprogrammierung 13
B Mit Button einen Datensatz löschen Datenbankprogrammierung 2
D MySQL Neuen Datensatz mit "new" anlegen Datenbankprogrammierung 16
E Nur der letzte Datensatz wird in Tabelle geschrieben Datenbankprogrammierung 4
M Serienbrief aus Datensatz Datenbankprogrammierung 2
E Aufzählung liest nur ersten Datensatz Datenbankprogrammierung 14
S SQLite Selectanfrage lieft datensatz aber cursor ist leer Datenbankprogrammierung 2
M Designfrage zu Rows die sich auf einen Datensatz derselben Tabelle beziehen Datenbankprogrammierung 7
A MySQL Datensatz wird nicht richtig gelöscht Datenbankprogrammierung 6
L SQLite fügt nur den ersten Datensatz ein Datenbankprogrammierung 2
C Hibernate Datensatz löschen Datenbankprogrammierung 2
M Access Datensatz beinhaltet ESC-Zeichen Datenbankprogrammierung 3
U Nur den ersten Datensatz löschen wenn mehrere gleiche da sind Datenbankprogrammierung 2
C Gleichzeitiger Zugriff auf Datensatz Datenbankprogrammierung 5
Eldorado MySQL Hibernate - neuen Datensatz einfügen Datenbankprogrammierung 2
Java.getSkill() Datensatz / Tupel automatisch nach xy Tagen / Stunden löschen Datenbankprogrammierung 7
M Datensatz exklusiv öffnen Datenbankprogrammierung 5
M design issue: datensatz lange locken? Datenbankprogrammierung 10
M Datensatz aus Datenbank löschen Datenbankprogrammierung 6
T Theoriefrage : mehrere User vs gleichen Datensatz Datenbankprogrammierung 4
K Schnelle Methode um zu testen ob Datensatz existiert Datenbankprogrammierung 9
R datenbank - datensatz sucjen Datenbankprogrammierung 4
-MacNuke- Hibernate löscht jeden Datensatz einzeln? Datenbankprogrammierung 12
V Doppelten Datensatz vermeiden? Datenbankprogrammierung 7
S Überprüfen ob Datensatz existiert Datenbankprogrammierung 2
P SQL, nur jeder 5. Datensatz Datenbankprogrammierung 9
B Eingefügter Datensatz erneut abfragen. Datenbankprogrammierung 10
J Anzeige Button gibt immer nur 1. Datensatz aus DB aus Datenbankprogrammierung 8
M Letzter Datensatz mit auslesen(brauch kleinen Tipp) Datenbankprogrammierung 15

Ähnliche Java Themen

Neue Themen


Oben