Click here to Skip to main content
15,889,838 members
Please Sign up or sign in to vote.
3.67/5 (2 votes)
Here i have the code to select singna data from 3tables with same where condition how can i simplify this





SQL
SELECT SUM(SIGNA) FROM dbo.tblPLAG
WHERE   VERSION='ACTUAL' AND STATS='ST_Z010'
 AND FACILITY='FA_2003'
 AND  TD IN  ( SELECT TIMEID FROM Time   WHERE   ID BETWEEN
  @YEAR+'.'+(SELECT RIGHT ('000'+ CAST (@PERIOD-6 AS varchar), 3))
 AND
@YEAR +'.'+(SELECT RIGHT ('000'+ CAST (@PERIOD AS varchar), 3)))
union

SELECT SUM(SIGNA) FROM dbo.tblPLAG 1
WHERE   VERSION='ACTUAL' AND STATS='ST_Z010'
 AND FACILITY='FA_2003'
 AND  TD IN  ( SELECT TIMEID FROM Time   WHERE   ID BETWEEN
  @YEAR+'.'+(SELECT RIGHT ('000'+ CAST (@PERIOD-6 AS varchar), 3))
 AND
@YEAR +'.'+(SELECT RIGHT ('000'+ CAST (@PERIOD AS varchar), 3)))

union

SELECT SUM(SIGNA) FROM dbo.tblPLAG3
WHERE   VERSION='ACTUAL' AND STATS='ST_Z010'
 AND FACILITY='FA_2003'
 AND  TD IN  ( SELECT TIMEID FROM Time   WHERE   ID BETWEEN
  @YEAR+'.'+(SELECT RIGHT ('000'+ CAST (@PERIOD-6 AS varchar), 3))
 AND
@YEAR +'.'+(SELECT RIGHT ('000'+ CAST (@PERIOD AS varchar), 3)))
Posted

1 solution

Hai

The easiest way is use view,try to create view in sql server,if u open ur database in sql,u can see Database Didgrams,Tables,Views,Synonyms ..... upto Security.

Just Right Click Views--->New View,it open one windows "Add Table",just select 3 tables in that list and click add,then it show 3 table,just u create link with same fields with 3 tables.if u link 3 tables with unique column,then select what r the fields u need in 3 tables,below coloumn one appear with ur selected fields from 3 tables,and u can add condition in "Or" coloumn next to Filter.again beleow u will see one query is formed,if u execute that query u can get result at below,so now u get single data form 3 tables with same where condition,just copy that query and past in stored procedure.u r query formed with dbo. string,just remove it,then u can get clear form that query.
 
Share this answer
 
v3

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900