Veröffentlicht 18. Februar 200520 j Hallo! hab ne Frage! gibt es mit mysql Möglichkeiten im Sql-Command mit Parametern/Variablen zu arbeiten? wenn Ja: wie? Danke für jede Antwort!
21. Februar 200520 j Das ist so ziemlich immer möglich, egal wie Du SQL bedienst. Willst Du mit PHP arbeiten oder wie? Jedenfalls kannst Du den SQL-String zusammenbauen wie jeden anderen String auch. Beispiel in PHP: mysql_query("SELECT * FROM tabelle WHERE bedingung=$Variable", $sql_connection_id); Hilft Dir das?
21. Februar 200520 j Willst Du mit PHP arbeiten oder wie? ich arbeite mit der C# Entwicklungsumgebung und die datenbank ist MySql. Mein Problem ist, das ich einen 2 Seite langen Sql-String habe und da mehrmals nach dem selben gefiltert wird, da ich mit substrings arbeite, will ich die selbe Variable mehrmals im Sql-Command gebrauchen. Beispiel: ---------------- variable = "Hans" SELECT * FROM tabelle WHERE Feld1 = variable AND FELD2 = variable; ----------------- wenn es soetwas gibt, wie schreib ich das hin?
21. Februar 200520 j ne, eigendlich nicht. ich würde gerne wissen ob es eine möglichkeit gibt im Sql_Command eine Variable am anfang zu setzen und diese mehrfach im Command zu nutzen. hier mein sql_Command: An den Stellen wo du LIKE " ... " findest, will ich dahinter eine Variable haben, da ich den Wert nur einmal z.B am anfang setzen will. z.B.: Variable1 ist bestelldatum = "2005%" Variable2 ist status = "ib%"; -------------------------- SELECT auftraege.auftragsnr, auftraege.angebotsnr, auftraege.auftragstyp, auftraege.fk_anlagennr, auftraege.auftragsstatus, auftraege.kunde, auftraege.bestellnrkunde, auftraege.bestelldatum, auftraege.beschreibung, auftraege.produktbereich, auftraege.projektleiterintern, auftraege.verkaeufer, auftraege.techasp, auftraege.kaufmasp, auftraege.waehrung, auftraege.eingabedatum, auftraege.eingegebenvon, TempTable.Sollkosten_gesamt, TempTable.Istkosten_gesamt, TempTable.VkPreis_gesamt, sum(auftragspositionen.vkpreis) as Auftragswert, TempTable.Istkosten_Leistung, TempTable.Sollkosten_Leistung, TempTable.VkPreis_Leistung, TempTable.Istkosten_Material, TempTable.Sollkosten_Material, TempTable.VkPreis_Material, -- TempTable.Istkosten_Reise, TempTable.Sollkosten_Reise, TempTable.VkPreis_Reise FROM (SELECT auftraege.* FROM auftraege WHERE auftraege.bestelldatum LIKE "2005%" AND auftraege.auftragsstatus LIKE "%") As auftraege LEFT JOIN auftragspositionen ON auftraege.auftragsnr = auftragspositionen.fk_auftragsnr LEFT JOIN (SELECT auftraege.auftragsnr, sum(IFNULL(MaterialTable.Istkosten_Material,0) + IFNULL(LeistungsTable.Istkosten_Leistung,0)) as Istkosten_gesamt, SUM(IFNULL(ReiseTable.Sollkosten_Reise,0) + IFNULL(MaterialTable.Sollkosten_Material,0) + IFNULL(LeistungsTable.Sollkosten_Leistung,0)) As Sollkosten_gesamt, SUM(IFNULL(ReiseTable.VkPreis_Reise,0) + IFNULL(MaterialTable.VkPreis_Material,0) + IFNULL(LeistungsTable.VkPreis_Leistung,0)) As VkPreis_gesamt, LeistungsTable.Istkosten_Leistung, LeistungsTable.Sollkosten_Leistung, LeistungsTable.VkPreis_Leistung, MaterialTable.Istkosten_Material, MaterialTable.Sollkosten_Material, MaterialTable.VkPreis_Material, ReiseTable.Sollkosten_Reise, ReiseTable.VkPreis_Reise FROM auftraege, (SELECT auftraege.auftragsnr, Dienstleistungen.Sollkosten_Leistung As Sollkosten_Leistung, sum(dienstleistungserfassung.menge*dienstleistungserfassung.kostenproeinheit) as Istkosten_Leistung, Dienstleistungen.VkPreis_Leistung FROM auftraege LEFT JOIN dienstleistungserfassung ON auftraege.auftragsnr = dienstleistungserfassung.fk_auftragsnr LEFT JOIN (SELECT auftragspositionen.fk_auftragsnr, auftragspositionen.gepl_menge, auftragspositionen.gepl_einzelkosten, sum(auftragspositionen.gepl_menge*auftragspositionen.gepl_einzelkosten) as Sollkosten_Leistung, SUM(auftragspositionen.vkpreis) As VkPreis_Leistung FROM auftragspositionen WHERE auftragspositionen.leistungskategorie = "D" GROUP BY fk_auftragsnr) As Dienstleistungen ON auftraege.auftragsnr = Dienstleistungen.fk_auftragsnr WHERE auftraege.bestelldatum LIKE "2005%" AND auftraege.auftragsstatus LIKE "%" GROUP BY auftraege.auftragsnr) As LeistungsTable, (SELECT auftraege.auftragsnr, Materialkosten.Sollkosten_Material As Sollkosten_Material, sum(materialkostenerfassung.menge*materialkostenerfassung.ekpreis) as Istkosten_Material, Materialkosten.VkPreis_Material FROM auftraege LEFT JOIN materialkostenerfassung ON auftraege.auftragsnr = materialkostenerfassung.fk_auftragsnr LEFT JOIN (SELECT auftragspositionen.fk_auftragsnr, auftragspositionen.gepl_menge, auftragspositionen.gepl_einzelkosten, sum(auftragspositionen.gepl_menge*auftragspositionen.gepl_einzelkosten) as Sollkosten_Material, SUM(auftragspositionen.vkpreis) As VkPreis_Material FROM auftragspositionen WHERE auftragspositionen.leistungskategorie = "M" GROUP BY fk_auftragsnr) As Materialkosten ON auftraege.auftragsnr = Materialkosten.fk_auftragsnr WHERE auftraege.bestelldatum LIKE "2005%" AND auftraege.auftragsstatus LIKE "%" GROUP BY auftraege.auftragsnr) As MaterialTable, (SELECT auftraege.auftragsnr, Reisekosten.Sollkosten_Reise As Sollkosten_Reise, Reisekosten.VkPreis_Reise FROM auftraege LEFT JOIN (SELECT auftragspositionen.fk_auftragsnr, auftragspositionen.gepl_menge, auftragspositionen.gepl_einzelkosten, SUM(auftragspositionen.gepl_menge*auftragspositionen.gepl_einzelkosten) as Sollkosten_Reise, SUM(auftragspositionen.vkpreis) As VkPreis_Reise FROM auftragspositionen WHERE auftragspositionen.leistungskategorie = "R" GROUP BY fk_auftragsnr) As Reisekosten ON auftraege.auftragsnr = Reisekosten.fk_auftragsnr WHERE auftraege.bestelldatum LIKE "2005%" AND auftraege.auftragsstatus LIKE "%" GROUP BY auftraege.auftragsnr) As ReiseTable WHERE auftraege.auftragsnr = LeistungsTable.auftragsnr AND auftraege.auftragsnr = MaterialTable.auftragsnr AND auftraege.auftragsnr = ReiseTable.auftragsnr GROUP BY auftraege.auftragsnr) As TempTable ON auftraege.auftragsnr = TempTable.auftragsnr GROUP BY auftraege.auftragsnr -----------------------------------------------------------
21. Februar 200520 j Es ist doch eine C# Frage. Den Select führst Du doch innerhalb von C# aus. Du willst sowas machen: auftraege.bestelldatum LIKE "+bestelldatum+". Da ich aber kein C# kann weiss ich nicht die richtige Antwort bzw. ich habe da so spezielle Vermutungen wie es in anderen Sprachen gemacht wird. Lass den Beitrag doch mal ins C# Forum verschieben. Frank
21. Februar 200520 j Es ist doch eine C# Frage. Lass den Beitrag doch mal ins C# Forum verschieben. Frank nun, ich wollte ja nur wissen wie dazu die Syntax in MySql ist, falls es überhaupt geht! aber ist ne gute Idee. Werde es im C#-Forum mal versuchen, vielleicht kann mir da weiter geholfen werden. Aber wie verschieb ich diesen Beitrag in's C# Forum?
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.