Quantcast
Channel: Für Entwickler: SQL Server Forum
Viewing all 1772 articles
Browse latest View live

SSIS - Der text-Datentyp nicht als DISTINCT auswählbar! /doppelte Datensätze löschen

$
0
0

Ich möchte in einer Tabelle aus der DB-Quelle die doppelten Datensätze löschen. Die sind ziemlich viel (ca. 100000). Ich kenne nur DISTINCT. Aber dertext-Datentyp in einer Spaltekann nicht als DISTINCT ausgewählt werden. 

Jetzt möchte ich die folgende Spalte mit dem Toolbox-Konvertierung in einen anderen Datentyp konvertieren. Dann mit DISTINCT bereinigen. Anschließend möchte ich die Spalte wieder in Text-Datentyp konvertieren und in die Ziel-Tabelle reinschreiben.

Das Problem liegt daran, dass 

  1. der Text-Datentyp nur in UNICODE (auch text-Datentyp ---> DISTINCT nicht möglich! ) oder
  2. in Zeichenfolge konvertiert werden kann. Bei der Konvertierung in Zeichenfolge gibt es eine menge Fehlermeldung beim Debugging. Datenfluss bricht ab. 
  3. Fuzzygruppierung geht auch nicht. Fehlermeldung: Eingabespalten vom Typ IMAG, TEXT oder NTEXT werden von der Fuzzygruppierung nicht unterstützt.

Hat jemand einen Tipp?






SSRS Parameter nachträglich hinzugefügt: Fehlermeldung: im Bezug auf Eindeutigkeit

$
0
0

Hallo

Habe einen bestehenden Bericht in dem die Jahreswerte pro Periode ausgegeben werden. Dabei werden immer alle 12 Perioden untereinander angezeigt. Das funktioniert auch einwandfrei. Nun soll aber die Periode beim Berichtsaufruf auswählen können. Nachdem man schon die Kostenstelle auswählen kann , fügte ich die Periode als Parameter hinzu.  Beim Berichtsaufruf erscheint folgender Fehlerhinweis:

Im Bericht weisen mehrere Datasets, Datenbereiche oder Gruppierungen den Namen 'Periode' auf. In einem Bericht müssen Dataset-, Datenbereichs- und Gruppierungsnamen eindeutig sein.

Kann mir jemand sagen was ich tun kann ? Ich verstehe die Meldung nicht ganz

Vielen Dank Herbert

2 identische Würfel verbinden

$
0
0

Hallo Community,

ich stehe vor einem großen Problem.

Folgende Ausgangssituation: Ich habe 2 Würfel, die identische Strukturen (Dimensionen, Measures) besitzen in meinem Analysis-Projekt. Grund dafür ist, dass nicht nur tagesaktuelle,  sondern stundenaktuelle Daten angezeigt werden sollen. Um so jetzt also die Ausführungszeit der Würfelverarbeitung zu reduzieren, hält Würfel 1 "historische" Daten, welche über den Tag gleich bleiben und Würfel 2 tagesaktuelle Daten, die stündlich aktualisiert werden. Die Differenzierung reicht für die meisten Reports aus.

Nun möchte ich einen Report erstellen, der auf beide Würfel zugreift und diese ähnlich dem UNION-Statement in SQL verbindet, sodass eine Auswertung der Daten über den gesammten Zeitraum bis zur aktuellen Stunde möglich ist.

Gibt es eine Möglichkeit dies zu realisieren? Ich arbeite mit MSSQL 2008 R2.

VG Strulle

Gleicher Report im gleichen Renderformat und es fehlen Seiten (SSRS 2008 R2)

$
0
0

Hallo,

wir haben hier ein seltsames Phänomen, 

Wir haben 2 Abbos:

  1x Mail,

1x Dateisystem.

Die um 18:00 Uhr versendete Mail hat Fehler im PDF (Seiten fehlen) die PDF im Dateisystem ist i.O. Auch alle Snapshots, die erstellt wurden sind i.O. Dass hatten wir jetzt schon den zweiten Monat ist also nachvollziehbar. Hat da einer einen Ansatz zur Lösung.

System Windwos Server 2008 R2 mit SQL -Server Standard 2008 R2 alles Aktuell gepatcht.

Grüße wilken


Verschachtelte Abfragen

$
0
0

Hallo liebes Forum :)

Ich hoffe, ich bin im richtigen Unterforum, ansonsten entschuldige ich mich schonmal für die Umstände :)

Ich wurde auf Arbeit gefragt, ob ich nicht ein paar SQL-Abfragen erstellen könnte, die die Arbeit erleichtern würden. Da ich der einzige in der Firma mit SQL-Kenntnissen bin, hab ich natürlich zugestimmt und mir nichts weiter dabei gedacht. Wie schwer können schon ein paar Abfragen sein ;)

Als Randinfo, es handelt es sich um ein Vermessungsbüro und die Abfragen sollen in die Software GeoBüro eingebunden werden. Der Server ist ein Microsoft 2008 R2 Server.

Es gibt Unmengen an Tabellen, in die ich mich erstmal reinfinden musste. Beispielsweise gibt es eine Tabelle für die Aufträge, dann gibt es eine Tabelle für die verschiedenen Vorgänge in diesen Aufträgen und wieder diverse andere Tabellen für Auftragsarten und so weiter. Alles ziemlich weitflächig aufgeteilt und verknüpft.

Das macht dann Abfragen nicht sonderlich leicht, wenn man mehrere Kriterien betrachten muss. Meine SQL-Kenntnisse sind auch etwas eingerostet und ich hatte mich schonmal an Subquerys probiert, aber das funktionierte auch nicht so, wie gedacht.

Ich werf dann einfach mal eine der gewünschten Abfragen in den Raum, vielleicht ist es ja gar nicht so kompliziert und ich stell mich nur blöd an ;)

Die Aufgabenstellung:

"Alle Aufträge, bei denen die Vermessungsunterlagen da sind, aber noch keine Messung im AD (Außendienst) stattgefunden hat
= Endedatum beim Vorgang "Vermessungsunterlagen sind bestellt" (AVU0), aber kein Vorgang "Messung im AD" (ADB)
-> Vorgang "Messung im AD" muss konsequent gesetzt werden"

Aus diesem "Auftrag" hab ich erstmal folgenden Code erstellt:

SELECT		GBAuftrag.Nummer AS Auftragsnummer, GBAuftrag.Objekt, GBAuftrag.Lage, GBAuftragsart.Name AS Auftragsart, GBAuftrag.Betreff, GBVorgangsart.Kurzname, 
		GBVorgangsart.Name AS Vorgangsart, GBVorgang.Ende

FROM		GBAuftrag INNER JOIN
			GBAuftragsart ON GBAuftrag.[#Auftragsart] = GBAuftragsart.ID INNER JOIN
            	GBVorgang ON GBAuftrag.ID = GBVorgang.[#Auftrag] INNER JOIN
            	GBVorgangsart ON GBVorgang.[#Vorgangsart] = GBVorgangsart.ID

WHERE		DATEDIFF(day, GBVorgang.Datum, CURRENT_TIMESTAMP)<=730
			AND GBVorgang.Ende IS NOT NULL 
			AND GBVorgangsart.Kurzname = 'AVU0' 
			AND GBVorgangsart.Kurzname != 'ADB'

ORDER BY	GBAuftrag.Nummer;

Nun ist es aber der Fall, dass die Kurzbezeichnungen für die Vorgänge ja in der gleichen Spalte der Tabelle liegen, also gibt er mir in der derzeitigen Lage nur die Daten aus, die vorhanden sind, aber zeigt mir nicht an, wo noch der Außendienst fehlt. Hier steh ich irgendwie auf dem Schlauch, wie man das kombinieren könnte und wäre über ein paar andere Ansichten oder Lösungsansätze sehr dankbar, denn die folgenden "Wünsche" der Kollegen werden nicht leichter von der Fomulierung :D

Dann danke ich Euch schonmal für eure Zeit und eure Ideen.

LG, Ithron86 :)

Mehrere Spaltenwerte in einem einzigen Feld ausgeben

$
0
0

Hallo zusammen,

vermutlich gibt es im SQL Server 2008 dafür wieder eine einfache Lösung, aber ich komme einfach nicht darauf.

ich möchte alle Werte einer Spalte durch Kommata getrennt in einem einzigen Feld ausgeben.

Bsp.:

Geschlecht Vorname

1                Frank

2                Claudia

1                Friedrich

2                Petra

1               Jürgen

2               Simone

Als Ergebnis soll folgende Tabelle zurückgegeben werden:

Geschlecht  Namen

1                  Frank, Friedrich, Jürgen

2                  Claudia, Petra, Simone

Wie kriege ich das hin?

Vielen Dank und viele Grüße

Michael


aspx mit MySQL verbinden

$
0
0

Hallo zusammen,

hab einen Ordner bin in der root erstellt und die relevanten dll-Dateien von c:\Program Files\MySQL\Connector NET 6.6.5\Assemblies\v2.0\ reinkopiert. 

Mein Code

<%@ Page Language="VB" debug="true" %>
<%@ Import Namespace = "System.Data" %>
<%@ Import Namespace = "MySql.Data.MySqlClient" %>
<script language="VB" runat="server">

Sub Page_Load(sender As Object, e As EventArgs)

     myConnection = New MySqlConnection("server=localhost; user id=admin; password=pw; database=otto; pooling=false;")
</script>

wird immer angemeckert mit folgender Fehlermeldung:

Compilerfehlermeldung: BC30002: Der Typ MySqlConnection ist nicht definiert.

Suche schon tagelang nach einer Lösung, aber keine gefunden!

Wer kann helfen?

Gruß

Lothar



VB ListBoxItem umbenennen

$
0
0

Hallo zusammen,

Ich habe eine Listbox mit 10 ListBoxItems in meiner Anwendung. Nun sollen die Items Ihren Namen aus einer Tabelle der verbundenen Datenbank ziehen.

Wie mache ich das?


SSRS: Report aus einem Report mittels URL aufrufen.

$
0
0

Hallo

EDIT: Habs gefunden. 1. beim Konkatinieren "&" verwenden statt "+" und vertippt hatte ich mich auch noch. Vielen Dank

Ich rufe einen Bericht aus einem anderen Bericht mittels "Action" Eigenschaft einer Textbox auf. Ich verwende dabei

"Go to URL".

Der aufzurufende Bericht benötigt einen Parameter, der abhängig vom Parameter des ersten Berichts ist.

Ich will also den Parameter des ersten Berichts dem zweiten mitgeben. (Meine Url wird hier nicht richtig formatiert, falls drei Zeilen angezeigt werden, einfach als eine Zeile lesen.

"SERVER/PFAD?%2fOrdner1%2fOrdner2%2fMein+Bericht&Datenbank=" + Parameters!Parameter1.Value + "&rs:Format=csv"

&Parameter ist der Parametername

Parameter!Parameter1.Value ist der zu übergebene Wert.

Aber so einfach ist das nicht. Ich mach da irgendwas falsch mit der Syntax. Kann mir jemand helfen?

PS.: Das ich keinen Subreport mache hat den Grund das ich den zweiten Bericht unbedingt als URL aufrufen will, damit ich das&rs:Format=csv mitgeben will.

Vielen Dank

Peter


Sql Server 2008 R2 Sql Server 2008 R2 Business Intelligence Development Studio Sql Server 2008 R2 Management Studio Visual Basic 2010 Excel 2010 PowerPivot


C#, SQLServer 2000 Ungültiger Versuch, zu Depth, da der Datenleser bereits geschlossen ist

$
0
0

Hallo,

ich bin auf der Suche nach einem Memory Leak bei einer alten SQL Anwendung.

Konfiguration: SQL Server 2003 auf Windows Server 2000, 

SQL Anwendung auf Windows XP Sp 3, .Net 2.0 , VS2005, C#, kein ODBC

Dieses Memory Leak tritt nicht auf, wenn ich die Anwendung auf einem Windows Server 2000 Rechner laufen lasse.

Das Memroy Leak tritt auf, bei alle Aufrufen vom SQL-Reader.

 z.B.:

using(connection.SqlDataReader = cmd.ExecuteReader())

{

  if(connection.SqlDataReader.Read())

  {

     ...

  }

Es wird keine Exception durchgereicht.

Bei der Analyse habe ich aber folgende Fehlermeldung durch den Debugger gefunden (nach dem Ende der using Anweisung):

Connection.SqlDataReader.Depth threw an exception of type 'System.Invalid Operation Exception'

bei System.Data.SqlClient.SqlDataReader.get_Depth()

Ungültiger Versuch, zu Depth, da der Datenleser bereits geschlossen ist.

Meine Überlegung ist derzeit, ob diese Exception verhindert, das der Speicher wieder freigegeben wird.

Vielelicht fehlt mir auch nur ein Service Pack. (Wurde damals bei Windows Server benötigt)

Gruß

  Christoph


Zusammenführen von Datensätzen unterschiedlichen Datums aus verschiedenen Tabellen

$
0
0

Hallo zusammen,

ich habe eine Frage zum Zusammenführen von Datenzeilen. Folgende Situation ist gegeben: Es gibt mehrere Tabellen in denen verschiedene Daten gespeichert werden z.B. so (vereinfacht, die Tabellen haben noch mehr Spalten und unterschiedliche Strukturen):

Tabelle A:

DateTime                    Wert1   Wert2   Wert3

---------------------------------------------------

25.07.2010 15:00:00   12,34    3,45     1,23

25.07.2010 15:10:00   12,50    4,54     1,67

Tabelle B:

DateTime                    Wert1   Wert2   Wert3

---------------------------------------------------

25.07.2010 15:00:00   15,00    4,11     9,59

25.07.2010 15:05:00   17,37    5,38     9,43

25.07.2010 15:15:00   16,77    5,58     9,28

Ich möchte jetzt Datensätze so zusammenführen, dass ich z.B. alle Wert1 aus Tabelle A und Wert3 aus Tabelle B zusammenführe. Das Ergebnis sollte dann so aussehen:

Ergebnis:

DateTime                    Wert1   Wert3

------------------------------------------

25.07.2010 15:00:00   12,34    9,59

25.07.2010 15:05:00   NULL     9,43

25.07.2010 15:10:00   12,50    NULL

25.07.2010 15:15:00   NULL     9,28

Es müssen also Werte mit gleichem DateTime in einer Zeile zusammen kommen, aber auch gleichzeitig Werte die nicht das gleiche DateTime haben hinzugefügt werden. Und wenn es für einen Zeitpunkt keinen Wert gibt, so soll dort NULL stehen. Ich bin leider kein Fachmann in SQL und hoffe auf Eure geschätzten Hinweise zur Lösung dieses Problems.

Vielen Dank,

Manfred

IF Anweisung

$
0
0

Guten Abend,

ich habe eine Frage:

Warum läuft dieser SQL-Code in einen Fehler (In der Datenbank ist bereits ein Objekt mit dem Namen '#test' vorhanden)?

IF OBJECT_ID(N'tempdb..#test') IS NOT NULL
    DROP TABLE #test;
DECLARE @Schalter VARCHAR (1);
SET @Schalter = 'A';
IF @Schalter = 'A'
BEGIN
WITH t1 AS
(
SELECT GETDATE () AS Tag
)
SELECT * INTO #test FROM t1
END
IF @Schalter = 'B'
BEGIN
WITH t2 AS
(
SELECT GETDATE ()-5 AS Tag
)
SELECT * INTO #test FROM t2
END
SELECT * FROM #test

Nach meinem Verständis sollte doch der 2. Block durch die IF-Anweisung überhaupt nicht abgearbeitet werden.

Hintergrund der Frage (das Beispiel ist sehr vereinfacht), dass abhängig von der gesetzen Variablen unterschiedlicher Abfragetext ausgeführt werden soll, die Ergebnisse aber in der weiteren Verarbeitung immer aus der gleichen temporären Tabelle abgefragt werden.

Danke schon mal.

Jörg

SSRS.Diagramm: Legende der Series Groups stellt die Farben nicht korrekt dar

$
0
0

In einem Diagramm stelle ich eine Serien Group mit 4 verschiedene Werten dar. Diese habe ich farblich angepasst, indem ich die Eigenschaft Fill der Series Properties mit einer Expression definiert habe. Dafür habe ich mit Hilffe der Funktion IIF den vier Werten Farben zugeordnet. Im Diagramm werden die Farben korrekt dargestellt. Allerding ist in der Legende nur eine der vier Farben zu finden.

Woran kann das liegen?a

Umlaufehler schnell korrigieren

$
0
0

Hallo,

in unserer SQL-Server-Datenbank laufen Daten aus verschiedenen Systemen zusammen.

Leider haben wir immer wieder das Problem, das Umlaute in Straßennamen und Ortsbezeichnungen verhunzt dargestellt werden.

Um Abhilfe zu schaffen hatte ich mal eine Funktion gebaut mit der die diversen Fehler, die ich im Laufe der zeit gefunden habe größtenteils repariert werden. Als Problem stellt sich aber mittlerweile heraus, dass das ganze nicht besonders performant ist.

USE [master]
GO
/****** Object:  UserDefinedFunction [dbo].[udf_replace_n]    Script Date: 07/09/2013 13:58:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[udf_replace_n] (@str NVARCHAR(max))

RETURNS VARCHAR(max) AS

BEGIN
	SET @str = REPLACE (@str, N'ä', N'ä')
	SET @str = REPLACE (@str, N'{', N'ä')
	SET @str = REPLACE (@str, N'Ä', N'A')
	SET @str = REPLACE (@str, N'ü', N'ü')
	SET @str = REPLACE (@str, N'#', N'ü')
	SET @str = REPLACE (@str, N'++', N'ü')
	SET @str = REPLACE (@str, N'}', N'ü')
	SET @str = REPLACE (@str, N'Ü', N'Ü')
	SET @str = REPLACE (@str, N'ö', N'ö')
	SET @str = REPLACE (@str, N'÷', N'ö')
	SET @str = REPLACE (@str, N'', N'ö')
	SET @str = REPLACE (@str, N'+Â', N'ö')
	SET @str = REPLACE (@str, N'Ö', N'Ö')
	SET @str = REPLACE (@str, N'|', N'ö')
	SET @str = REPLACE (@str, N'ß', N'ß')
	SET @str = REPLACE (@str, N'+ƒ', N'ß')
	SET @str = REPLACE (@str, N'~', N'ß')
	SET @str = REPLACE (@str, N'á', N'ß')
	SET @str = REPLACE (@str, N'á', N'ß')
	SET @str = REPLACE (@str, N'´', N'''')
	SET @str = REPLACE (@str, N'traáe', N'traße')
	SET @str = REPLACE (@str, N'"', N'')
	SET @str = REPLACE (@str, N'û', N'-')
	SET @str = REPLACE (@str, N'¯', N'ß')
	RETURN @str
END

Hat jemand eine Idee, wie das besser gelöst werden kann?

Gruß

cheapy

Datentyp TEXT casten - aber wie?

$
0
0

Hallo,

ich muss aus einer MSSQL Datenbank einen View erstellen und dazu Zahl- und Datumswerte sortierbar für eine Sharepointseite machen. Die dazu notwenidgen Werte finde ich in einer Tabelle, nur leider als Text-Feldtyp. Meine Versuche diese Werte zu "casten" scheitern mit der Meldung: "Die explizite Konvertierung des text-Datentyps in int ist nicht zulässig."

Wie kann ich Date, die in Texteldern stehen so casten, dass ich MONEY und DATETIME erhalte?


SSRS.Diagramm: Bezeichnung der Wertachse ändern

$
0
0

Meine Wertachse (x-Achse!) des Balkendiagramms (waagerechte Balken) stellt Zeitwerte dar. In den Eigenschaften der Achsenbeschriftungen habe ich eingestellt, das im Intervall von 6 Monaten eine Beschriftung erfolgt. Der Beschriftungstext wird sicherlich anhand der übergebenen Werte der Serien (dt.?) vorgenommen. Sie enthalten als Wert ein Datum (ddmmyyyy). Die Beschriftung der Achse soll aber nur dem Format mmyyyy entsprechen. Leider finde  ich keine Einstellungsmöglichkeiten dafür.

Es ist doch möglich, oder?

mehrere Tabellen aus einem Emailsystem zusammenführen

$
0
0

ich schreib meine Bachelorarbeit bei meinem Unternehmen, inhaltlich geht es um die Datenimport, Datenaufbereitung, die inhaltliche Analyse sowie die Auswertung von Daten im Reporting. Diese Daten sind von einem E-Mail-Managementsystem entstanden. 

Aktuell verschaffe ich mir einen Überblick über die enthaltenen Daten in den Tabellen, beim Abbilden des Datenmodelles von E-Mail-Managementsystem stoße ich jedoch auf einige Herausforderungen, gerade komplexere Vorgänge wie Verschiebungen in Teilprojekten, mehrfacher Wechsel von Bearbeitern, sowie erneutes öffnen von bereits geschlossenen Vorgängen sind in der Recherche schwer zu rekonstruieren.

Das Ziel ist aus diesen Tabellen ein Data layer zu entwickeln, welches für ein ausführliches Reporting interessant ist. Vielleicht werde ich die ganzen Tabellen mit Hammer zusammenklopfen und die Daten in einem langen Datensatz mit über 200 Spalten hintereinanderlegen.

Der daraus entstandene  Report dient am Ende dazu, eine schnelle Übersicht über die Leistung des E-Mail-Services zu erhalten. Wichtig für den Auftraggeber ist nicht die innere Struktur wie Projekte sondern es herauszufinden, wie schnell und wie gut welche Themen seiner Mailbox beantwortet wurden. Also die Mail-Aktivitäten. (Wie lange lag eine E-Mail im System, bis sie von einem Sachbearbeiter angenommen ist, oder an wen wurde die E-Mail weitergeleitet. Wie lange wurde daran gearbeitet? Welchen Status hat sie? Externe Zeit, Wiedervorlagezeit, etc. )
 
Kennt sich jemand damit aus? Hat einer eine bessere Idee wie man diese Tabellen bzw. Informationen zusammenführen kann?

 

 

Welche Datenbank für einen "offline Client" verwenden?

$
0
0

Hallo,

ich habe eine Anwendung, welche auf einen SQL Server zugreift.

Nun muss ich einen "Offline Client" bauen. Die Datensynchronisation zwischen "Online Datenbank" und "Offline Datenbank" werde ich "händisch" programmieren. Hier benötige ich keine Synchronisation welche ein Datenbanksystem zur Verfügung stellt.

Nun jedoch die Entscheidende Frage. Welche Datenbank soll ich auf dem Offline Client verwenden?

Das einfachste wäre vermutlich, auf jedem Offline Client einen SQL Server Express zu installieren. Da könnte ich dann einmalig (bei der Installation) ein bestehendes SQL Server Backup einspielen, und meine "Offline" Version kann, identisch wie die Online Version, mit der Datenbank kommunizieren. Das Problem ist hier nur die sehr umfangreiche Setup Routine.

Welche Möglichkeiten gibt es noch? Ich könnte Access, oder SQL Server Compact verwenden. Hier müsste ich jedoch zuerst die Datenbank entsprechend erstellen (Scripte habe ich jedoch leider keine) Auch müsste ich mein Framework, welche die Datenzugriffe übernimmt, entsprechend anpassen.

Kann mir jemand "Erfahrungen" oder "Vorschläge mit Begründungen" dazu geben, welches die "beste" Variante ist mit den drei Gesichtspunkten "Wenig Programmieraufwand" "Wenig Scriptaufwand" und "Wenig Installationsaufwand".

Gibt es eventuell eine SQL Server Version, welche sehr einfach zu installieren ist und das Setup sehr klein ist und bei welchem ich dann zusätzlich ein bestehendes SQL Server Backup (der GROSSEN Version) einspielen kann?

Vielen Dank für eure Infos.

Thomas


Laufwerke mit falschem Inhalt werden in MS SQL Serverstudio angezeigt

$
0
0

Hallo!

Es wird ein MS SQL Server 2005 auf Windows 2003 R2 Server verwendet (Leider kein Update auf 2008 möglich) Nun soll hier ein Backup eingerichtet werden bzw. ausgeführt werden. Leider findet der SQL-Server das lokale Laufwerk nicht, sondern Listet nicht mehr im System vorhandene Laufwerke auf. Wenn ich dann das Laufwerk im Skript einfach angebe kommt die Meldung, dass das Laufwerk nicht gefunden werden kann Operation System Error 3. In der Laufwerksverwaltung ist das Laufwerk richtig eingebunden und die fälschlicherweise vom SQL-Server aufgelisteten Laufwerke sind dort nicht vorhanden.

Was läuft da falsch?


VG niesel

Problem mit einem calculated Member / Set [SSAS]

$
0
0

Zuerst einmal nutze ich das SQL Management Studio um diese (vereinfachte) Abfrage auszuführen (nicht Excel 2007, welches offensichtlich Probleme an dieser Stelle hat):

WITH
    SET [Project period dates] AS 
    {
        StrToMember("[Time].[Date].&[" + [Project].[ParentProject].CURRENTMEMBER.PROPERTIES("Project Start Iso") + "]"):
        StrToMember("[Time].[Date].&[" + [Project].[ParentProject].CURRENTMEMBER.PROPERTIES("Project End Iso") + "]")
    }
    MEMBER [Measures].[Test] AS ([Project period dates].COUNT)
SELECT
{
    [Measures].[Test]
}
on 0,
    NONEMPTY ([Project].[ParentProject].MEMBERS)
    DIMENSION PROPERTIES [Project].[ParentProject].[Project Duration], [Project].[ParentProject].[Project Start Iso], [Project].[ParentProject].[Project End Iso]
on 1
FROM
    [MyCube]
WHERE
(
    [Orgunit].[Orgunit].&[448]
)

Diese Abfrage liefert mir eine Liste von Projekten mit ihren drei Properties und einem calculated Member der auf dem vorhergehenden berechneten Set basiert zurück. Die Properties zeigen die richtigen Werte an, aber der calculated Member zeigt nur immer denselben Wert: Das berechnete Ergebnis für das allererste Projekt der Hierarchie.

Ich versteh nicht wirklich warum, immerhin sagt das MSDN dazu:

"Das aktuelle Element ändert sich in einer Hierarchie, die auf einer Achse in einer Abfrage verwendet wird. Infolgedessen kann sich das aktuelle Element in anderen Hierarchien der selben Dimension, die nicht auf einer Achse verwendet werden, ebenfalls ändern; dieses Verhalten wird als „auto-exists“ bezeichnet."

In den dortigen Beispielen wird mit calculated Members gearbeitet, was aber, sofern ich es richtig verstanden habe, kein Problem sein sollte, immerhin sind abfragebasierte calculated Sets ebenfalls dynamisch. Über einen Schubs in die richtige Richtung wäre ich dankbar, denn mittlerweile weiß ich nicht mehr wo ich nach der Lösung meines Problems suchen soll.


Viewing all 1772 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>