Mega Code Archive

 
Categories / MSSQL / Table Joins
 

Table join with data returned from function

28> create table employee( 29>     ID          int, 30>     name        nvarchar (10), 31>     salary      int ) 32> GO 1> 2> create table job( 3>     ID              int, 4>     title nvarchar  (10), 5>     averageSalary   int) 6> GO 1> 2> 3> insert into employee (ID, name, salary) values (1,  'Jason', 1234) 4> GO 1> insert into employee (ID, name, salary) values (2,  'Robert', 4321) 2> GO 1> insert into employee (ID, name, salary) values (3,  'Celia', 5432) 2> GO 1> insert into employee (ID, name, salary) values (4,  'Linda', 3456) 2> GO 1> insert into employee (ID, name, salary) values (5,  'David', 7654) 2> GO 1> insert into employee (ID, name, salary) values (6,  'James', 4567) 2> GO 1> insert into employee (ID, name, salary) values (7,  'Alison', 8744) 2> GO 1> insert into employee (ID, name, salary) values (8,  'Chris', 9875) 2> GO 1> insert into employee (ID, name, salary) values (9,  'Mary', 2345) 2> GO 1> 2> insert into job(ID, title, averageSalary) values(1,'Developer',3000) 3> GO 1> insert into job(ID, title, averageSalary) values(2,'Tester', 4000) 2> GO 1> insert into job(ID, title, averageSalary) values(3,'Designer', 5000) 2> GO 1> insert into job(ID, title, averageSalary) values(4,'Programmer', 6000) 2> GO 1> 2> 3> select * from employee; 4> GO ID          name       salary ----------- ---------- -----------           1 Jason             1234           2 Robert            4321           3 Celia             5432           4 Linda             3456           5 David             7654           6 James             4567           7 Alison            8744           8 Chris             9875           9 Mary              2345 1> select * from job; 2> GO ID          title      averageSalary ----------- ---------- -------------           1 Developer           3000           2 Tester              4000           3 Designer            5000           4 Programmer          6000 1> 2> CREATE FUNCTION dbo.fnSalaryCount(@SalaryQty bigint) 3> RETURNS TABLE 4> AS 5> RETURN (SELECT * 6>         FROM Employee where 7>         salary > @SalaryQty 8>         ) 9> GO 1> 2> 3> 4> SELECT DISTINCT name 5> FROM dbo.fnSalaryCount(25) AS a 6> JOIN job AS j 7>   ON a.id = j.id 8> GO name ---------- Celia Jason Linda Robert 1> 2> drop function fnSalaryCount 3> drop table employee; 4> drop table job; 5> GO 1> 2>