Problem mit SQL ausfühen

22/06/2009 - 17:00 von Karl M. | Report spam
Hallo NG!

Ich habe ein Problem mit dem Ausführen einer SQL-Syntax.

Ich arbeite derzeit mit SQL Server 2000. Um die SQL für mein Programm zu
testen, habe ich mit Access 2007 eine Verknüpfung zum SQL Server 2000 gemacht.

Das Problem, welches ich gerade habe, liegt darin, dass ich eine SQL Syntax
habe, die zwar in der Access-Verknüpfung zum SQL Server funktioniert, mir
aber innerhalb des C#-Codes kein Ergebnis liefert. Nach dem Fill()-Befehl
habe ich immernoch 0 Rows in meiner DataTable.

Gibt es irgendwelche Einschrànkungen oder irgendetwas, was in meiner SQL
falsch ist?

In meinem Projekt besorge ich mir die Daten über DataTable:

Connect();
OleDbCommand Command = new OleDbCommand(pQuery.SQL,
this.Connection);
OleDbDataAdapter DataAdapter = new OleDbDataAdapter(Command);
DataTable Table = new DataTable();
//DataAdapter.FillSchema(Table, SchemaType.Source);
DataAdapter.Fill(Table);
return Table;

Die SQL, die ich ausführen möchte, ist:

SELECT CurrenciesComplete.ID, CurrenciesComplete.CurrencyName,
CurrenciesComplete.CurrencyAbbrevation,
CurrenciesComplete.ExchangeRateToOneEUR, CurrenciesComplete.NewestDate FROM
(SELECT CurrenciesMain.ID, CurrenciesMain.CurrencyName,
CurrenciesMain.CurrencyAbbrevation, CurrenciesMain.ExchangeRateToOneEUR,
CurrenciesDetails.NewestDate FROM Currencies AS CurrenciesMain LEFT JOIN
(SELECT CurrencyAbbrevation, MAX(DateEffectiveFrom) AS NewestDate FROM
Currencies GROUP BY CurrencyAbbrevation) CurrenciesDetails ON
CurrenciesMain.CurrencyAbbrevation = CurrenciesDetails.CurrencyAbbrevation
AND CurrenciesMain.DateEffectiveFrom = CurrenciesDetails.NewestDate)
CurrenciesComplete WHERE CurrenciesComplete.NewestDate <> NULL;
 

Lesen sie die antworten

#1 Martin Honnen
22/06/2009 - 19:04 | Warnen spam
Karl M. wrote:

Die SQL, die ich ausführen möchte, ist:

SELECT CurrenciesComplete.ID, CurrenciesComplete.CurrencyName,
CurrenciesComplete.CurrencyAbbrevation,
CurrenciesComplete.ExchangeRateToOneEUR, CurrenciesComplete.NewestDate FROM
(SELECT CurrenciesMain.ID, CurrenciesMain.CurrencyName,
CurrenciesMain.CurrencyAbbrevation, CurrenciesMain.ExchangeRateToOneEUR,
CurrenciesDetails.NewestDate FROM Currencies AS CurrenciesMain LEFT JOIN
(SELECT CurrencyAbbrevation, MAX(DateEffectiveFrom) AS NewestDate FROM
Currencies GROUP BY CurrencyAbbrevation) CurrenciesDetails ON
CurrenciesMain.CurrencyAbbrevation = CurrenciesDetails.CurrencyAbbrevation
AND CurrenciesMain.DateEffectiveFrom = CurrenciesDetails.NewestDate)
CurrenciesComplete WHERE CurrenciesComplete.NewestDate <> NULL;



Versuche es mal mit
WHERE CurrenciesComplete.NewestDate IS NOT NULL
statt dem
CurrenciesComplete.NewestDate <> NULL



Martin Honnen MVP XML
http://msmvps.com/blogs/martin_honnen/

Ähnliche fragen