UPDATE Using Aggregate And Inner Join

Aug 24, 2004

I want the sum of an amount to update another table using inner join.

The following query -

UPDATE A
SET A.[Col3] = SUM(B.[Col3])
FROM A
INNER JOIN B
ON A.C1 = B.C1
ANDA.C2= B.C2

Gives me an error saying I cannot use SET with aggregate Column.

How do I perform this aggregate update?

Thanks,

Vivek

View 1 Replies


ADVERTISEMENT

Aggregate Function/Join Troubles

Nov 28, 2007

Hey,

I am running into trouble performing a second join on a column while using aggregate functions over that table.

What I think is happening is that the aggregate values (sum, avg, count) are being multiplied because I am joining on the same table a second time, but I don't know how to fix or avoid this problem.

Here's the query:

---

SELECT
CAST(ro.xing_tc_no AS INT) AS loc_id,
SUM(ro.total_fatal) AS tot_fatal,
SUM(ro.total_serious) AS tot_serious,
SUM(ro.total_minor) AS tot_minor,
COUNT(ro.report_no) AS tot_accidents,
AVG(ro.NO_OCCUPANTS) AS num_occupants

FROM
UserHotspots uh

LEFT JOIN rods_k_crossing AS rkc
ON rkc.location_id = uh.CrossingID

LEFT JOIN rods_occurrence AS ro
ON rkc.tc_location_nbr = ro.xing_tc_no

GROUP BY
ro.xing_tc_no

---

The second join is also performed on rods_k_crossing and that is when the sums, avgs, and counts get multiplied. If I take that second join out the numbers come out fine.

Thanks for any help!

View 2 Replies View Related

Transact SQL :: Aggregate Function Causing Error In Complex Join

May 13, 2015

I have a few tables I am trying to join to create a report. Everything was working fine until I tried to add an aggregate Sum function to a column (MaxCap) in table ctfBarn. 

select
x.*, y.division, y.department, y.location
,(right(z.SvcMgrName,len(z.SvcMgrName)-len(left(z.SvcMgrName,CHARINDEX(', ',z.SvcMgrName)-1))-2)+' '+
left(z.SvcMgrName,CHARINDEX(', ',z.SvcMgrName)-1))AS SvcMgrName
,(right(z.SrSvcName,len(z.SrSvcName)-len(left(z.SrSvcName,CHARINDEX(', ',z.SrSvcName)-1))-2)+' '+

[Code] .....

I think I probable need to include a group by but can't figure out the correct syntax.

View 12 Replies View Related

Aggregate Function Update

Mar 8, 2004

I am trying to write an update statement based on an aggregate and it will not let me. Please find below the SQL.

update abtimesummary
set hours = sum(a.hours)
from abtimestore a
join abtimesummary b
on (cast(a.weekno as varchar(10)))+'-'+(cast(a.empno as varchar(10))) = b.summaryid

and this is the error message:

Server: Msg 157, Level 15, State 1, Line 2
An aggregate may not appear in the set list of an UPDATE statement.

Can someone tell me how to get round this please?

Many thanks

View 2 Replies View Related

Aggregate May Not Appear In An UPDATE Statement

Aug 20, 2007

I am trying to update a field in a table with the most recent event_date. However, I am receiving the following error:


Msg 157, Level 15, State 1, Line 1

An aggregate may not appear in the set list of an UPDATE statement.

My code appears below:

----------------

update mraOI

set mraOI.event_history_key = eh.event_history_key,

mraOI.event_date = MAX(eh.event_date),

mraOI.event_time = eh.event_time,

mraOI.event_type_key = eh.event_type_key,

mraOI.item_key = eh.item_key,

mraOI.associated_item_ke = eh.associated_item_ke

FROM reports.MedRecActionOI mraOI INNER JOIN

srm.EVENT_HISTORY eh ON mraOI.CC_episode_key = eh.item_key
-----------------


Can someone suggest a better method or a work around?

View 3 Replies View Related

Aggregate NOT Permitted In "set" List Of Update

Jan 21, 2002

Can anyone tell me how to UPDATE a column w/ an aggregate value (sum) w/in an UPDATE statement?

I receive the error: "An aggregate may not appear in the set list of an UPDATE statement" in the follwoing code:

update TabAAA set A.col_777 = sum(A.Salary)
from TabAAA A TabBBB B,
where (A.col_1 = B.col_1)
and (A.col_2 = B.col_2)

View 2 Replies View Related

UPDATE Another Table Using Aggregate Function

May 22, 2008

Here is the example:

I have two tables. One has Projects with the total amt of hours worked on the project itself. The other is an Employee_Projects table with individual rows of hrs per employee worked on the above referenced projects.

I need to SUM all the hrs from the Employee_Projects table and GROUP BY project number, then UPDATE the Projects table with the sum of hours where the Project Number from table A matches the Project Number from table B.

Of course, you cant use an aggregate function in an UPDATE clause, so what would be the easiest way to do this??

Any help would be much appreciated.

-C

View 2 Replies View Related

Update Using Group By And Aggregate Function

Jan 22, 2004

I'm trying to update a varchar field using SUM. I keep getting the error that the sub query returns more than one value.

UPDATE CIRSUB_M
SET TRM_DMO = SUBSTRING(TRM_DMO,1,11) +
(SELECT CAST(SUM(COPIES) AS VARCHAR(5)) FROM CIRSUB_M
WHERE BIL_ORG = '02' AND CRC_STS IN ('R','P','Q','T')
GROUP BY PUB_CDE, DNR_NBR)
WHERE BIL_ORG = '02' AND CRC_STS IN ('R','P','Q','T')

Example

PUB_CDE DNR_NBR COPIES TRM_DMO
THN 000000092637 100 A
THN 000000092637 200 B
THN 000000082455 100 A
THN 000000082455 200 B
THN 000000051779 100 A

Updated
THN 000000092637 100 A300
THN 000000092637 200 B300
THN 000000082455 100 A300
THN 000000082455 200 B300
THN 000000051779 100 A100

View 4 Replies View Related

UPDATE RECORDS WITH AGGREGATE FUNCTION

Mar 2, 2007

Problem is very simple

I want to update sum of a field from another table to first table

TABLE ONE:
==========
ItemID
QtyInStock


Table TWO:
==========
BatchID
ItemID
Qty

I want to Update the QtyInStock of First Table with Sum(Batch.Qty)

here is the query i am writing but giving error

UPDATE ITEMS
SET
INSTOCKQTY=CASE WHEN QtyInBatch>1 THEN QTYINBATCH ELSE 0 END
FROM ITEMS, (
SELECT ITEMS.ITEMID, SUM(Batch.Qty) AS QtyInBatch FROM Batch INNER JOIN Items ON Batch.ItemID = Items.ItemID GROUP BY ITEMS.ITEMID
)

appericiating anyones help in advance




FAZEEL AMJAD
Systems Engineer
Crystal Technologies

View 4 Replies View Related

Update Table With Joins And Aggregate Function

Apr 3, 2007

Is this possible? What I am looking for is something like:UPDATE T_SitesSET T_Sites.LastDate = T_Inspections.DateFROM T_SitesINNER JOIN T_Assets ON T_Sites.SiteID = T_Assets.AssetIDLEFT OUTER JOIN T_Insecptions ON T_Assets.AssetID = T_Inspections.AssetID-- But I need only the last inspection done on the site (including if it is null) 

View 1 Replies View Related

SQL Server 2008 :: Aggregate In Update Statement

Apr 16, 2015

I'm getting the following error message 'An aggregate may not appear in the set list of an UPDATE statement' What is the proper way to carry out an update on aggregates?

My code is below:

t1.TotalTest1 = coalesce(Sum(t2.AmountTest1), 0.00),
t1.TotalTest2 = coalesce(Sum(t2.AmountTest2), 0.00),
t1.TotalTest3 = coalesce(Sum(t2.AmountTest3), 0.00),
t1.TotalTest4 = coalesce(Sum(t2.AmountTest4), 0.00),

from #tbl_CHA t1
inner join

[Code] ....

View 4 Replies View Related

UPDATE A Table With Aggregate Results For Multiple Columns

Jan 8, 2007

Hi everyone. I am updating a table with aggregate results for multiplecolumns. Below is an example of how I approached this. It works finebut is pretty slow. Anyone have an idea how to increase performance.Thanks for any help.UPDATE #MyTableSET HireDate=(Select Min(Case When Code = 'OHDATE' then DateChangedelse null end)From HREHWhere #MyTable.HRCo=HREH.HRCo and#MyTable.HRRef=HREH.HRRef ),TerminationDate=(select Max(Case When Type = 'N' thenDateChanged else null end)From HREHWhere #MyTable.HRCo=HREH.HRCo and#MyTable.HRRef=HREH.HRRef ),ReHireDate=(select MAX(Case When Code = 'HIRE' thenDateChanged else null end)From HREHWhere #MyTable.HRCo=HREH.HRCo and #MyTable.HRRef=HREH.HRRef )

View 2 Replies View Related

Cannot Perform An Aggregate Function On An Expression Containing An Aggregate Or A Subquery.

Oct 19, 2007

Can any1 tell me why i am getting an error


SELECT DISTINCT

--p.voucher,

--p.amount,

p.siteID,

b.siteID,

SUM((round(b.total,2,2)) - SUM(round(p.amount,2,2))) AS OutStandingBalance,

SUM((round(b.total,2,2)) - SUM(round(p.amount,2,2))) AS CashCheque,

SUM((round(b.total,2,2)) - SUM(round(p.amount,2,2))) AS Vouchers

FROM

BillingTotal b,

Payment p

--WHERE

-- s.sitename=@cmb1

--AND p.siteid = s.siteid

-- p.voucher = 0

-- p.voucher = 1

GROUP BY p.siteID,b.siteID



Msg 130, Level 15, State 1, Line 1

Cannot perform an aggregate function on an expression containing an aggregate or a subquery.

View 8 Replies View Related

Analysis :: Calculated Member From Aggregate And Non-aggregate Factors

Sep 22, 2015

I have 2 Dimensions in SSAS (see below end), I want to create a calculated member, named

This_Year_Billable_Objective_Count, with its formula = BillableLastYear*(100+ BillableObjective)/100.

The first factor,  BillableLastYear is a number, aggregated (sum) from child units.

The second factor,  BillableObjective is a percent number (for example 28 means 28%), it's not aggregate. It's an dependent value for each unit.

How can I calculate This_Year_Billable_Objective_Count for each unit?

\ able 1
SELECT [UnitKey]
      ,[UnitID]
      ,[UnitName]
      ,[Unit2Name]
      ,[Unit3Name]
      ,[Unit4Name]

[Code] .....

View 6 Replies View Related

UPDATE && JOIN (with WHERE)

Jun 30, 2004

Hi all,

Can someone please help me with this update statement?
UPDATE Stats
SET Stats.JobShownInResults = Stats.JobShownInResults + 1

WHERE Jobs.JobID IN
(
SELECT Query that returns IDs from Search criteria
)

From Stats
inner join Jobs
ON Jobs.JobId = Stats.JobID
I'm trying to increment a value in 'Stats' every time a job in 'Jobs' is returned in a search.

Any help much appreciated,

pete

View 5 Replies View Related

Update With A JOIN

Mar 22, 2013

In the last weeks I came to work with SQL Server more closely and - not being used to it - I stumbled over the sematics of an UPDATE statement using a JOIN (something which is not available in e.g. Oracle).I wonder what the difference between these two updates is:

Code:
update foo
set ..
from bar
where bar.fid = foo.id;
and
Code:
update foo
set ...
from foo f1
join bar on bar.fid = f1.id;

In both cases I have an inner join between foo and bar, but in the second one, foo is actually listed twice in the update statement. As far as I can tell, both carry out the same thing - at least with my test data.

View 10 Replies View Related

Update & Inner Join How?

Apr 23, 2008

Best Greetings,

i want to make an update query for a table but the where clause will check a join with other talbe

update table1 inner join table 2 on x.table1=y.table2 and y.table1= y.table2
set z='anything'

or shall it be


update table1
set z='anything'
where x in (select x from table2) and y in (select y from table2)

i dont know how the syntax be any idea plz ,also table 2 it will be derived from table1 in the form of

select x,max(y)
from table1
order by x

View 2 Replies View Related

Update Using Join

Jan 29, 2015

UPDATE sku
set ecomm = 1
from sku
join invt
on sku.style = invt.style
where invt.first_rcvd = '12/22/2014'

I keep getting an error using this query. It keeps failing at the "FROM" portion. What I want to do is update column ECOMM within table SKU if the STYLE has been received on a certain date.

View 4 Replies View Related

Update With Inner Join

Jun 16, 2006

in a table TBL1 I have to set DESCRIPTION for a TYPE1 equal to DESCRIPTION for a TYPE2 where their ID is equal in TBL1 and their key fields appear together in another table TBL2. In english, in TBL1 the description and id are equal but the type is different. a relationship between their key fields is shown in TBL2. Any thoughts on how to write this?

View 6 Replies View Related

Update Using An Inner Join

Jul 6, 2006

I am trying to update a file based on data retrieved from a join and performing a calculation prior to updationg my result field. I end up with "Column qualifier or table B undefined. "

can anyone see what my problem is?

update a
set a.yr2004 = (b.smal + b.smat) * a.qtypre
from commodityf a inner join itmrvb b
on a.i@stid = b.stid
and a.cinbr = b.itnbr

View 7 Replies View Related

Help With Inner Join In Update

Aug 29, 2007

Here is my update statements which doesn't work, can you show me an example.

UPDATE zurnacik_user SET zurnacik_user.usergroupid=15
INNER JOIN zurnacik_userfield
ON zurnacik_user.userid = zurnacik_userfield.userid
WHERE zurnacik_userfield.field5 = "Kadýn"
AND zurnacik_user.usergroupid = 2

=================

ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE zurnacik_userfield.field5 = "Kadýn"
AND zurnacik_user.usergroupid = 2
SE' at line 4

=====

I from Turkey, Thank You...

View 2 Replies View Related

Update Using An Inner Join

Jul 23, 2005

Hello,I have two tables (table1 and table2). I want to set a flag in table1 foreach common row with table2. I use the following syntaxUPDATE table1 SET flag='Y' from table1 INNER JOIN table2 on (table1.a =table2.a) AND (table1.b = table2.b)However the situation arises where I may have a row in table2 that matcheswith two or more rows in table1. The requirement is that I only want toset the flag on a single row in table1.

View 3 Replies View Related

UPDATE JOIN TOP 1

Nov 28, 2006

I am trying to update 1 table with the top records from another table foreach record in the first tableUPDATE HPFSLOWMOVINGSET TOP 1 LASTRCTDATE = (SELECT DOCDATE FROM IV30300 INNER JOINHPFSLOWMOVING ON HPFSLOWMOVING.ITEMNMBR = IV30300.ITEMNMBR ANDHPFSLOWMOVING.LOCNCODE = IV30300.LOCNCODE WHERE DOCTYPE = 4)This updates all records with the same lastrctdate. I need to update eachrecords with the top lastrctdate where the itemnmbr and locncode equals.Thanks for any help you can provide!Darren

View 4 Replies View Related

Update With Inner Join

Nov 15, 2006

I have an MS Access query that needs to be converted ot SQL Server 2005

Access Query:
UPDATE tblCheckNumber INNER JOIN tblHistory ON
tblCheckNumber.Autonumber = tblHistory.AutoNumber SET
tblHistory.CheckAmount = ([tblchecknumber].[amount1]), tblHistory.CheckNumber =
[tblchecknumber].[checknumber], tblHistory.CheckDate = [tblchecknumber].[checkdate],
tblHistory.AccountNumber = [tblchecknumber].[AccountNumber],
tblCheckNumber.Updated = "YES"

WHERE
(((tblHistory.CheckAmount) Is Null Or
(tblHistory.CheckAmount)=0) AND ((tblHistory.CheckNumber) Is Null) AND
((tblHistory.CheckDate) Is Null) AND
((tblHistory.AccountNumber) Is Null));

SQL conversion:
UPDATE
tblCheckNumber
SET tblHistory.CheckAmount = ([tblchecknumber].[amount1]), tblHistory.CheckNumber = [tblchecknumber].[checknumber], tblHistory.CheckDate = [tblchecknumber].[checkdate], tblHistory.AccountNumber = [tblchecknumber].[AccountNumber], tblCheckNumber.Updated = "YES"
FROM [DEV_TAXREF].[dbo].tblCheckNumber
INNER JOIN tblHistory
ON tblCheckNumber.Autonumber = tblHistory.AutoNumber
WHERE (((tblHistory.CheckAmount) Is Null Or (tblHistory.CheckAmount)=0) AND ((tblHistory.CheckNumber) Is Null) AND ((tblHistory.CheckDate) Is Null) AND ((tblHistory.AccountNumber) Is Null));

I get the following error:
The multi-part identifier "tblHistory.CheckAmount" could not be bound.

What is wrong?

View 3 Replies View Related

SELECT, JOIN And UPDATE

May 30, 2007

I need to Update a table with information from another table.  Below is my psuedo code - need help with the syntax needed for Sql2000 server.
JOIN tblStateLoc ON tblCompanies.LocationID = tblStateLoc.LocationIDUPDATE tblCompaniesSET tblCompanies.StoreType = tblStateLoc.StoreTypeWHERE tblCompanies.LocationID = tblStateLoc.LocationID

View 2 Replies View Related

Update Right Join Sql Problem

Jan 28, 2008

 Hi all,I have a problem with a sql update statement in a store procedure :update table1 set id_cl=t2.id_cl, mail=t2.mail from [table1]t1 right join [table2]t2 on t1.id_cl=t2.id_clWhat I would like is :- Update mail in table 1 from table2 when id_cl are identical -> works- Insert a new id_cl in table1 if it exists in table2 and not in table1 -> doesn't workI thought that the 'right join' would have been able to do that but apparently not.Could you help on this ?Thank you

View 4 Replies View Related

Should I Join The Update Queries

Mar 21, 2004

I have a page that will require several hundred update queries to be sent to the database. How much of a performance increase will i get by joining them all into one statement and sending them as a batch instead of running them one by one?

Thanks.

View 5 Replies View Related

Update Table With JOIN

Jun 2, 2004

Ok, I have tried this a million ways, and I am just stumped...

I have a access statement I am trying to convert to a T-SQL Statement.. There is no reason I should be having such a hard time with a simple query. Please Help!


UPDATE Tbl1
INNER JOIN Tbl2 ON Tbl1.ID = Tbl2.ID
SET tbl1.Field1 = tbl2.Field1

View 2 Replies View Related

Update A Field Using A W/Join. Please Help.

Nov 21, 2005

I am tryin t to update the tbl1_ID from the tbl2_ID. How do I do a Update Join that will do a comparison on the param column and value columns so that I could get the correct ID into tble 1.
Tbl1 is my destination table and tbl2 is my source. Please Help.



ID Tbl1_ID tb1Param tbl1value

1NULLParam1 0
1NULLParam2 F
1NULLParam3 2
3NULLParam1 0
3NULLParam2 E
3NULLParam3 0
5NULLParam1 0
5NULLParam2 F
5NULLParma3 2



tbl2_ID tbl2Param tbl2value

100param1 0
101param1 1
102param1 2
103param1 3
104param1 4
105param2 E
106param2 F
107param2 H
108param2 HF
109param2 HS
110param2 L
111param2 LS
112param3 0
113param3 1
114param3 2
115param3 3
116param3 4
117param3 5
118param3 6


Here is what Im trying to do if you can understand this.

Update Tbl1
SET tb1ID = B.tbl2_ID
FROM tbl1 AS A JOIN tbl2 AS B
ON A.tbl1Param + A.tbl1Value = B.tbl2Param + A.tbl2value

View 2 Replies View Related

Update Using Join Conditions

Apr 7, 2008

I have three table For example
Employee (Empid , Empname , Esal)
Department (Deptid , Deptname , empid )
Staff (staffid , Staffname , Empid)

It is just example
how can i update Empname whose staffid =1 accor to staffid)
using Join Conditions :- Pls help me out ..
or
how to update data using JOIN Conditions







Yaman

View 2 Replies View Related

How To JOIN In UPDATE - Across 2 Tables

Oct 15, 2014

I have a customers CRM DB that I need to run an update query on, affecting around 14,000 records. The fields used in the entity in question are split across two tables. I need to update a field in one tabled based off of the result of a field in the other table.

So this is what I started with:

USE db1
UPDATE tbl2 SET field1 = '1' WHERE tbl1.CreatedOn < '2013-28-09 00:00:00.000';

This didn't work, SQL complained about being unable to bind tbl1.CreatedOn. I assume because it's in a different table to the one I'm updating.

I attempted a JOIN to the best of my limited SQL knowledge, thinking I could just shove the two tables together and it might be happy.

USE db1
INNER JOIN tbl1 ON tbl2.Id=tbl1.Id;
UPDATE tbl2 SET field1 = '1' WHERE tbl1.CreatedOn < '2013-28-09 00:00:00.000';

This also didn't work, complaining of syntax error near 'INNER'

I'm obviously missing something, but IU don't know what it is.

View 5 Replies View Related

Update One Table Using Join With Another?

Mar 13, 2006

I have a table with date values that are currently null.

I've created a query that identifies the dates that should go into the date field for the table. I'll call the table "shipping" and the SQL Query, "query".


query has the following fields:
CN int
CSN int
shipdate datetime

shipping has the following fields that are relavent:
CN int
CSN int
shipped_date datetime

I want to update shipping, setting shipping.shipped_date=query.shipdate
where query.cn=shipping.cn and query.csn=shipping.csn

How do I word it to get a proper update using query analyzer?

View 3 Replies View Related

Concatenate On Update Join

Jul 23, 2007

Looking to concat. two fields (w/o having to go to external scripting) in the process of an update that's running through a join.

Currently (to get events that cross today and update from the 'event' table to the current/daily table):
UPDATE tblEmployee SET tblEmployee.Status = tblFuture.Status
FROM tblFuture INNER JOIN tblEmployee
ON tblFuture.EmpID = tblEmployee.EmpID
WHERE DateDiff(DAY,GETDATE(),tblFuture.Start_Date) <= 0 AND DateDiff(DAY,GETDATE(),tblFuture.End_Date) >= 0

But I want to be able to set:
tblEmployee.Status = tblFuture.Status + tblFuture.Remarks ...

That doesn't work.

I've searched a bit here and there, but nothing successful thus far. Kind of new to SQL Server (not that I've done this in Oracle or MySQL). Anyhoo ... any ideas?

TIA!

View 6 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved