Tôi cần một SP để trả về nhiều bộ kết quả. Tập kết quả thứ hai sẽ dựa trên một cột của tập kết quả đầu tiên.Thủ tục lưu trữ trả về nhiều bộ kết quả
Vì vậy:
declare @myTable1 table(field0 int,field1 varchar(255))
insert into @myTable1 select top 1 field0, field1 from table1
declare @myTable2 table(field0 int,field3 varchar(255))
insert into @myTable2
select field0, field3 from table2
where @myTable1.field0 = @myTable2.field0
Làm thế nào để trở lại @ myTable1 và @ myTable2 với SP của tôi? Cú pháp này có đúng ngay cả không?
lời xin lỗi của tôi, tôi vẫn là một newbie tại SQL ...
EDIT:
Vì vậy, tôi nhận được một lỗi trên dòng cuối cùng của mã bên dưới cho biết: " phải khai báo các biến vô hướng "@ myTable1""
declare @myTable1 table(field0 int,field1 dateTime)
insert into @myTable1
select top 1 field0, field1
from someTable1 m
where m.field4 > 6/29/2009
select * from @myTable1
select *
from someTable2 m2
where m2.field0 = @myTable1.field0
Nếu tôi làm nổi bật và chạy mã cho đến thứ hai select *
nó hoạt động tốt ... khi tôi làm nổi bật phần còn lại nó hoạt động như các biến đầu tiên không tồn tại ...
EDIT2: Đã giải quyết được vấn đề đó. Cảm ơn các bạn.
declare @myTable1 table(field0 int,field1 dateTime)
insert into @myTable1
select top 1 field0, field1
from someTable1 m
where m.field4 > 6/29/2009
select * from @myTable1
select *
from someTable2 m2
where m2.field0 = (select field0 from @myTable1)
Đã hỏi trước, nhưng bạn đang sử dụng RDBMS nào? – JNK
Nó sẽ không hoạt động nếu bạn không có DECLARE @ Mytable1 trong cùng một tuyên bố. Nếu bạn chỉ làm nổi bật phần cuối cùng, thì DECLARE không có trong truy vấn đó. các biến này chỉ tốt cho một truy vấn và không tồn tại. – JNK
Microsoft SQL Server 2005 – EJC