2016-11-05 2 views
1

ich eine Prozedur A müssen wählenWie proceduce auszuführen SQL

Bei der Ausführung A 'TT/MM/JJ'

ich die folgenden Ergebnisse erhalten:

Nmonth Origincode      Rev  NYEAR 
---------------------------------------------------------- 
03(MAR) OL Booking online    11024127 2016 
03(MAR) OT Bookings from Other source 23728136 2016 
03(MAR) RES Bookings from    5761904  2016 
03(MAR) UK UK       831169  2016 
03(MAR) WS Bookings      0   2016 

ich nicht war versucht, SQL auszuwählen, ist aber nicht

select * 
from (exec A '1/1/2016') as results 
where coll = xyz 

Das ist falsch.

Können Sie mir helfen?

+0

Versuchen Sie, das Abfrageergebnis aus einer gespeicherten Prozedur zu bekommen? –

+0

Sie müssen die Prozedurausgabe in die temporäre Tabelle speichern und dann mit Ihrer WHERE-Bedingung aus dieser Tabelle auswählen. –

+4

Sie haben dies für Oracle und SQL Server markiert. Welche der beiden verwendest du eigentlich? –

Antwort

1

Wenn Sie Ergebnis in SQL Server suchen, dann: Sie können wie Ihre gespeicherte Prozedur Ergebnisse in jede temporäre Tabelle setzen:

// Tisch Temp erstellen

Create table #mytable 
(
<your column list> 
) 

// Daten einfügen in Temptabelle

insert into #mytable exec A '1/1/2016' 

// wählen Sie Daten mit Ihrem Filter oder Sie können sich setzen auch die where-Klausel in Stored Procedure

Select * from #mytable where coll=xyz 

oder Sie können auch Daten in temporäre Tabelle einfügen wie:

SELECT * 
INTO #mytable FROM  
OPENQUERY(yourservername, 'exec A ''1/1/2016''') 
Verwandte Themen