MS-Office-Forum


Google
   

Zurück   MS-Office-Forum > Microsoft Visual Studio /.NET > Visual Studio .NET (alle Produkte: C#, VB.NET etc.)
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 30.07.2010, 11:26   #1
NetPower
MOF Profi
MOF Profi
Standard Verschiedenes - Parametereingabe in Tabellenwertfunktion

Hallo Zusammen,

ich weiß jetzt nicht genau ob ich hier an der richtigen Stelle mit meinen Thema gelandet bin und versuche es einfach mal.

In einer Tabellenwertfunktion (auf MS SQL-Server 2008) frage ich anhand einer Parametereingabe einen bestimmten Status ab
Code:

where	Jahr = @pJahr and Monat <= @pMonat
and	F.Mitglied = @pStatus)
Mit dieser Konstellation kann ich ja nur einzelne Statuswerte (als integer), also 0, 1, 2 usw. abfragen.
Leider schaffe ich es nicht, mir auch alle Werte ausgeben zu lassen (ohne bestimmter Auswahl), sprich in der Art von * o.ä.
Kann mir jemand sagen ob es überhaupt möglich ist und wenn ja, wie?

Vielen Dank schon mal für Eure Hilfe!!

__________________

So long
Ralf

>> Man muß viel gelernt haben, um das, was man nicht weiß, erfragen zu können <<
NetPower ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 30.07.2010, 17:41   #2
hcscherzer
MOF Guru
MOF Guru
Standard

Was ist das Merkmal welchen Parameters, dass die Auswahl alle betreffen soll?
Ich könnte mir es so vorstellen, dass der Indikator dafür z.B. @pstatus = -1 sein könnte dann sähe das Kriterium z.B. so aus:
Code:

where @pstatus =  -1 or
Jahr = @pJahr and Monat <= @pMonat
and	F.Mitglied = @pStatus)

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
hcscherzer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 02.08.2010, 06:58   #3
NetPower
Threadstarter Threadstarter
MOF Profi
MOF Profi
Standard

Hallo Hans-Christian,

ich weiß jetzt nicht, was Du unter Merkmal verstehst.
Also die Einträge in der Tabellen, aus der gefiltert werden soll sind
0 = Nichtmitglieder
1 = Mitglieder
2 = Sonstige
Es soll nach den einzelnen Einträgen gefiltert werden, sprich nach 0, 1 oder 2 und es soll auch die Möglichkeit bestehen, alle auszuwählen (0 + 1 + 2).

Ist dies über diese Parametereingabe möglich?

__________________

So long
Ralf

>> Man muß viel gelernt haben, um das, was man nicht weiß, erfragen zu können <<
NetPower ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 02.08.2010, 07:28   #4
hcscherzer
MOF Guru
MOF Guru
Standard

Der Parameter ist der Schlingel, der den Wert enthält, nach dem Du entscheidest, wie Du filterst. In Deinem Beispiel @pStatus.
Jetzt kannst Du Dich für einen Wert (=Merkmal) entscheiden, der für 'alle' steht.
In meinem Codebeispiel wäre das -1. Ich dachte, das wäre anhand des Beispiels deutlich geworden ...
Hast Du das denn mit meinem Code mal ausprobiert?

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
hcscherzer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 02.08.2010, 08:42   #5
NetPower
Threadstarter Threadstarter
MOF Profi
MOF Profi
Standard

Habe Deinen Code getestet, aber es werden keine Daten zurückgegeben.
Der Code sieht jetzt folgendermaßen aus:
Code:

begin
with	LM as	(
			select		Jahr,
						Monat,
						F.[Mitglied] as [Status],
						cast(sum(coalesce(Zellstoff, 0)) as int)			as [Zellstoff (Monat)],
						cast(sum(coalesce(Holzschliff, 0)) as int)			as [Holzschliff (Monat)],
						cast(sum(coalesce(Papier_und_Pappe, 0)) as int)	as [Papier und Pappe (Monat)],
						sum([Zellstoff] + [Holzschliff] + [Altpapierstoff])	as [Rohstoff insgesamt (Monat)],
						cast(sum(coalesce(Altpapierstoff, 0)) as int)		as [APStoff (Monat)],
						sum([Zellstoff] + [Holzschliff]+ [Altpapierstoff] + [Papier_und_Pappe])
																			as [Umsatz insgesamt (Monat)]
			from        vdpproduktion.dbo.Umsaetze  U
			join		vdpproduktion.dbo.Firma F
						on F.Zentrale = U.Zentrale
						and F.Werk = U.Werk
						and F.Mitglied = @pStatus		
			--where		Jahr = @pJahr and Monat <= @pMonat
			--and		(@pStatus is null or F.Mitglied = @pStatus)
			where		@pstatus = -1 or
						Jahr = @pJahr and Monat <= @pMonat
			and			(F.Mitglied = @pStatus)
			group by	Jahr, Monat, F.Mitglied, U.Zentrale, U.Werk
				)
Ich bin ganz ehrlich und verstehe das mit -1 auch nicht ganz!! Was soll dieses -1 bewirken?

__________________

So long
Ralf

>> Man muß viel gelernt haben, um das, was man nicht weiß, erfragen zu können <<
NetPower ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 02.08.2010, 09:58   #6
hcscherzer
MOF Guru
MOF Guru
Standard

Zitat: von Ralf

Ich bin ganz ehrlich und verstehe das mit -1 auch nicht ganz!! Was soll dieses -1 bewirken?

Die Bedingung in meinem Beispiel in #2 ist doch dann WAHR, wenn @pStatus den Wert -1 hat ... den Gesetzen der Logik zufolge ist dann egal, was auf der andern Seite von OR steht und es werden alle Datensätze zurückgeliefert ... und wenn der Wert von @pStatus eben nicht -1 ist, dann müssen alle per AND verbundenen Bedingungen, die rechts vom OR stehen, WAHR sein.

Wenn Du freilich den Parameter @pStatus auch noch in der JOIN Bedingung verwendest, das ist eventuell doppelt gemoppelt und kann an der einen oder anderen Stelle wegfalle, aber dann kann das so einfach nicht klappen, und das konnte ich ausgehend von #1 auch nicht ahnen (die Kristallkugel war nicht eingeschaltet). Da müsste das eben auch noch mit rein ...
Code:

join vdpproduktion.dbo.Firma F
 on F.Zentrale = U.Zentrale
 and F.Werk = U.Werk
 and (F.Mitglied = @pStatus or @pStatus = -1)
Bei der Gelegenheit fällt mir auf, dass Du Feldnamen wie 'Jahr', 'Monat' verwendest ... das sind reservierte Worte und das solltest Du nicht tun.

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).

Geändert von hcscherzer (02.08.2010 um 10:01 Uhr).
hcscherzer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 02.08.2010, 11:00   #7
NetPower
Threadstarter Threadstarter
MOF Profi
MOF Profi
Standard

Vielen Dank für diese aufschlussreiche Erläuterung des Codes.
Ganz nebenbei, es funktioniert jetzt hervorragend.

Kaum macht man's richtig, funktionierts!!

Also nochmals vielen Dank für Deine Hilfe!!

__________________

So long
Ralf

>> Man muß viel gelernt haben, um das, was man nicht weiß, erfragen zu können <<
NetPower ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:47 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Home - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.