Click here to monitor SSC
SQLServerCentral is supported by Red Gate Software Ltd.
 
Log in  ::  Register  ::  Not logged in
 
 
 
        
Home       Members    Calendar    Who's On


Add to briefcase

how to add a column that contains the max value of the group from another column Expand / Collapse
Author
Message
Posted Sunday, November 11, 2012 5:44 AM
Forum Newbie

Forum NewbieForum NewbieForum NewbieForum NewbieForum NewbieForum NewbieForum NewbieForum Newbie

Group: General Forum Members
Last Login: Wednesday, November 21, 2012 11:58 AM
Points: 4, Visits: 44
The PROJECT_LEVEL column should return the MAX DASHBOARD_STATUS_LEVEL for every MARKET_PROJECT of the same id (instead it appears to be returning the value within the DASHBOARD_STATUS_LEVEL column for every record).

For Example:

For Austin T6-2011-03157, the MAX DASHBOARD_STATUS_LEVEL is 3, therefore the PROJECT_LEVEL for each of the four records should be 3.
For DALLAS-L6-2012-1122, the MAX DASHBOARD_STATUS_LEVEL is 2, therefore the PROJECT_LEVEL for each of the two records should be 2.



MARKET_NAME MARKET_PROJECT OVP_AMT DASHBOARD_STATUS_LEVEL PROJECT_LEVEL

AUSTIN AUSTIN-T6-2011-03157 125.00 3 3
AUSTIN AUSTIN-T6-2011-03157 137.00 2 2
AUSTIN AUSTIN-T6-2011-03157 52.27 2 2
AUSTIN AUSTIN-T6-2011-03157 1.24 1 1
DALLAS DALLAS-L6-2012-1122 77.34 1 1
DALLAS DALLAS-L6-2012-1122 1122.25 2 2


Below is the SELECT Statement within my query:

SELECT

SQL10.MARKET_NAME,

SQL10.MARKET_PROJECT,

SQL10.PROJECT_STATUS,

SQL10.PROJ_TYPE_NAME,

SQL10.DAYS_IN_LAST_PROJ_STAT,

SQL10.PROV_NAME,

SQL10.PROV_NUM,

SQL10.PROV_IRS,

SQL10.PROVIDER_STATUS,

SQL10.TOTAL_UNVALIDATED_CLAIMS,

SQL10.TOTAL_PROVIDERS,

SQL10.OVP,

SQL10.LOAD_DT,

SQL10.OK_TO_ASSIGN_DT,

SQL10.ASSIGNED_DATE,

SQL10.DAYS_UNTIL_EXPIRE,

SQL10.DASHBOARD_STATUS_LEVEL,

MAX(SQL10.DASHBOARD_STATUS_LEVEL) AS [PROJECT_LEVEL],



Can anyone help Please???




Post #1383431
Posted Sunday, November 11, 2012 11:57 AM
SSC Veteran

SSC VeteranSSC VeteranSSC VeteranSSC VeteranSSC VeteranSSC VeteranSSC VeteranSSC Veteran

Group: General Forum Members
Last Login: 2 days ago @ 1:32 PM
Points: 294, Visits: 1,101
If I've understood your requirements properly the following should do what you require
create table #test (
market_name varchar(6),
market_project varchar(25),
ovp_amt decimal(10,2),
dashboard_status_level int,
project_level int
)

insert into #test
values
('AUSTIN', 'AUSTIN-T6-2011-03157', 125.00, 3, null),
('AUSTIN', 'AUSTIN-T6-2011-03157', 137.00, 2, null),
('AUSTIN', 'AUSTIN-T6-2011-03157', 52.27, 2, null),
('AUSTIN', 'AUSTIN-T6-2011-03157', 1.24, 1, null),
('DALLAS', 'DALLAS-L6-2012-1122', 77.34, 1, null),
('DALLAS', 'DALLAS-L6-2012-1122', 1122.25, 2, null)

;with maxStatLevel as (
select market_project, max(dashboard_status_level) max_level
from #test
group by market_project
)
update t
set project_level = m.max_level
--select t.market_name, t.market_project, t.ovp_amt, t.dashboard_status_level, m.max_level
from #test t
inner join maxStatLevel m on t.market_project = m.market_project

select * from #test

drop table #test

Post #1383458
Posted Friday, November 16, 2012 1:20 PM


SSC-Enthusiastic

SSC-EnthusiasticSSC-EnthusiasticSSC-EnthusiasticSSC-EnthusiasticSSC-EnthusiasticSSC-EnthusiasticSSC-EnthusiasticSSC-Enthusiastic

Group: General Forum Members
Last Login: Yesterday @ 4:43 PM
Points: 192, Visits: 640
A more basic approach, in case you are not familiar with the CTE function ... would look something like


select market_project, max(dashboard_status_level) max_level
into #mytempTable
from mainTable
group by market_project
/* this creates a temporary table to reference in your SSMS windows*/

update m
set project_level = t.max_level
from mainTable as m inner join #mytemptable as t on t.market_project = m.market_project

drop table #myTempTable

I would still prefer the CTE construct depicted above however.
Post #1385841
« Prev Topic | Next Topic »

Add to briefcase

Permissions Expand / Collapse