C# Select-Anweisung für die Ausgabe Jahr und Monat

Horst1945

Cadet 4th Year
Registriert
Okt. 2014
Beiträge
106
Ich habe in der Tabelle Rechnung Rechnungsbeträge aus den Jahren 2013 und 2014
und möchte per SQL-Abfrage aus dem Jahr und dem Monat, die Daten abrüfen. Leider habe ich da keine Ahnung wie ich das bewerkstelligen kann.

Kann mir jemand seine Hilfe anbieten?

so habe ich es einmal versucht:

Code:
Select Sum(netto) as Netto, sum(Brutto) as Brutto from Rechnung where Monat = 11 and where Jahr = 2012

aber es so funktioniert das nicht.
 
Zusätzliche Informationen: Falsche Syntax in der Nähe des Where-Schlüsselworts.
 
Wie sieht die Tabelle aus (Namen der Spalten)?

edit:
Das zweite WHERE ist falsch. Es reciht einmal und die Bedingungen mit einem AND/OR verknüpfen.

Code:
Select Sum(netto) as Netto, sum(Brutto) as Brutto from Rechnung where Monat=11 and Jahr=2012
 
Zuletzt bearbeitet: (zweites WHERE entfernt)
Das ist die Tabelle Rechnung

datenbank11.jpg
 
Wie im meinem editierten Beitrag schon erwähnt: Es ist ein WHERE-Statement zuviel.
 
Ja ich habe nur den Monat genomen:

Code:
strSQL = "select sum(netto) as Netto, sum(mwst)as MwSt, Sum(Brutto) as Brutto from Rechnung  where Monat ='" + txtMonat.Text + "'";

Aber ich möchten die Daten aus dem Jahr für diesem Monat ausgeben

z.B.

Monat = 11 aus dem Jahr = 2013
 
Bin ja nun nicht der C#-Experte, aber hast du da die SQL-Injection neu erfunden?
 
Nimm doch die SQL-Query von AFKede und bau sie ein. Dann hast du es.
@asdfman: nicht ganz, wenn du beispielsweise die SQLCommand Klasse verwendest, dann musst du ganz normale SQL Querys machen.
 
BCBO1991 schrieb:
@asdfman: nicht ganz, wenn du beispielsweise die SQLCommand Klasse verwendest, dann musst du ganz normale SQL Querys machen.

Was hat das mit SQL Injection zu tun? Ich glaube hier ist Nacharbeit gefragt.

Als ich zu .NET gewechselt bin habe ich mich im Übrigen gefragt, warum immer noch so viel SQL von Hand geschrieben wird. Gut das geht an sich ja noch, aber DataSets und DataReader? Really? In 2014? Die ganzen Datenbanksachen sind so benutzerunfreundlich.

Ich lege jedem https://github.com/StackExchange/dapper-dot-net ans Herz!

Oder für kleinere Projekte Entity Framework.

@Horst1945:

Du fragst hier eine Integerspalte mit einem String ab. Warum hast du die Parameter schon wieder ad acta gelegt?

Code:
SqlCommand cmd = connection.CreateCommand();
cmd.CommandText = "select sum(netto) as Netto, sum(mwst)as MwSt, Sum(Brutto) as Brutto from Rechnung  where Monat = @Monat";
cmd.Parameters.Add("@Monat", SqlDbType.Int).Value = txtMonat.Text;

Du solltest txtMonat.Text auch vorher validieren.
 
Zuletzt bearbeitet:
Verdammt da hast du recht, bin heute morgen wohl noch nicht ganz wach. Da hab ich asdfman glatt falsch verstanden...
 
Zurück
Oben