Just nu i M3-nätverket
Gå till innehåll

Tung MS-SQL fråga lättare med AS ?


dkz

Rekommendera Poster

Jag har en MS-SQL fråga som idag är uppbyggd enligt nedan, men skulle vilja bli av med den extra DataSource kopplingen under WHERE satsen. Skulle det gå att använda sig av AS enligt nedan? Jag får det inte att fungera, kanske gör/tänker jag helt fel.

 

Så här är frågan uppbyggd idag:

SELECT x1, (SELECT OtherTable.OtherData FROM OPENDATASOURCE('SQLOLEDB','Data Source=OtherServer;User ID=Admin;Password=Admin').OtherTable AS OtherTable WHERE tabell1.x1 = OtherTable.OtherData)

FROM ThisTable

WHERE (SELECT OtherTable.OtherData FROM OPENDATASOURCE('SQLOLEDB','Data Source=OtherServer;User ID=Admin;Password=Admin').OtherTable AS OtherTable WHERE tabell1.x1 = OtherTable.OtherData) = 'N'

 

Önskemål

SELECT x1, (SELECT OtherTable.OtherData FROM OPENDATASOURCE('SQLOLEDB','Data Source=OtherServer;User ID=Admin;Password=Admin').OtherTable AS OtherTable WHERE tabell1.x1 = OtherTable.OtherData AS 'DataFromOtherServer')

FROM ThisTable

WHERE DataFromOtherServer = 'N'

 

Tack på förhand.

[inlägget ändrat 2007-02-11 10:07:28 av dkz]

Länk till kommentar
Dela på andra webbplatser

Jag svara på mig själv då. Kanske någon endå har lite input kring vad jag har kommit fram till.

 

Det går tydligen inte att ha alias i WHERE satsen, detta funkar bara i ORDER BY.

 

Så om jag skulle skriva om koden så här, skulle frågan exekveras snabbare?

 

SELECT * FROM (
SELECT x1, (SELECT OtherTable.OtherData FROM OPENDATASOURCE('SQLOLEDB','Data Source=OtherServer;User ID=Admin;Password=Admin').OtherTable AS OtherTable WHERE tabell1.x1 = OtherTable.OtherData) AS 'XXXX'
FROM ThisTable
WHERE x1 = 'Y'
)DATA
WHERE XXXX = 'N'

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...