Just nu i M3-nätverket
Jump to content

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


dkz

Recommended Posts

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]

Link to comment
Share on other sites

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'

 

 

 

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...