Join On Agragate Function Between Tables
Aug 19, 2006
A have a number of similar tables and what I want to do is to get the count of records grouped by day of week. All tables have date as an indexed unique column but the actual timestamps differs and have no relation. For one table I use this simple querry:
Select DatePart(dw,dato) AS DOW, Count(dato) AS NOR FROM AWP2
where dato > '2006-08-11'
Group By DatePart(dw,dato)
A typical result:
DOW NOR
3 8934
6 22397
7 23328
1 23401
4 1938
2 24399
5 1112
Trying to join two or more tables in all sorts of variants of this:
Select datePart(dw,a1.dato) AS DOW1,Count(a1.dato) [Amount 1],
datePart(dw,a2.dato) AS DOW2, Count(a2.dato) [Amount 2]
FROM AWP1 A1 Inner Join AWP2 A2 on datePart(dw,a1.dato) = datePart(dw,a2.dato)
Where a1.dato > '2006-08-11' AND a2.dato > '2006-08-11'
Group By datePart(dw,a1.dato), datePart(dw,a2.dato)
Here I get this as a typical result:
DOW1 Amount 1 DOW2 Amount 2
6 332953802 6 332953802
3 42248886 3 42248886
1 330281714 1 330281714
7 335759904 7 335759904
4 1232568 4 1232568
5 210168 5 210168
2 366985359 2 366985359
Where the numbers are way off.
Any suggestions?
View 3 Replies
ADVERTISEMENT
Jun 23, 2014
This is so complicated (for me) because I usually only work with single table and simple queries (SELECT, INSERT, UPDATE), but now I am in a situation where I am stuck.
What I am trying to archive is that: when a project manager logged-into his/her account, a grid-view will show a quick overview for all of his/her projects (id, created date, name and how many files are in pending) like below picture:
3 tables will be involved are:
Sample data for manager_id = 11
I tried this query but it not worked, it seems to display all columns right but the COUNT pending files column (assume the manager_id = 11)
SELECT COUNT(file_id) as 'Pending files', projects.project_id, projects.project_name, projects.status, projects.start_date
FROM ((project_manager
INNER JOIN files
ON project_manager.mag_id = files.manager_id AND project_manager.mag_id = 11 AND file_status = 'Pending')
INNER JOIN projects
ON projects.project_id = project_manager.project_id)
GROUP BY projects.project_id, projects.project_name, projects.status, projects.start_date
ORDER BY projects.status, projects.start_date DESC
result of this query:
View 5 Replies
View Related
Aug 17, 2007
Hi guys,
I'll appreciate any help with the following problem:
I need to retrieve data from 3 tables. 2 master tables and 1 transaction table.
1. Master table TBLOC contain 2 records :
rcd 1. S01
rcd 2. S02
2. Master table TBCODE contain 5 records:
rcd 1. C1
rcd 2. C2
rcd 3. C3
rcd 4. C4
rcd 5. C5
3. Transaction table TBITEM contain 4 records which link to 2 master table:
rcd 1. S01, C1, CAR
rcd 2. S01, C4, TOY
rcd 3. S01, C5, KEY
rcd 4. S02, C2, CAR
I use Left Join & Right Join to retrieve result below (using non-ASNI method) but it doesn't work.
Right Join method:
SELECT C.LOC, B.CODE, A.ITEM FROM TBITEM A RIGHT JOIN TBCODE B ON A.CODE = B.CODE
RIGHT JOIN TBLOC C ON A.LOC = C.LOC
GROUP BY C.LOC, B.CODE, A.ITEM ORDER BY C.LOC, B.CODE
When I use Non-ASNI method it work:
SELECT C.LOC, B.CODE, A.ITEM FROM TBITEM A, TBCODE B, TBLOC C
WHERE A.CODE =* B.CODE AND A.LOC =* C.LOC
GROUP BY C.LOC, B.CODE, A.ITEM ORDER BY C.LOC, B.CODE
Result:
LOC CODE ITEM
-----------------------------
S01 C1 NULL
S01 C2 NULL
S01 C3 CAR
S01 C4 TOY
S01 C5 KEY
S02 C1 NULL
S02 C2 CAR
S02 C3 NULL
S02 C4 NULL
S02 C5 NULL
Please Help.
Thanks.
View 3 Replies
View Related
Mar 31, 2005
Hi,
Trying to join two tables together.
Select * from ...
inner join
on table1.ID = table2.ID;
this works fine, however i want to use the RIGHT function so that i get the last four digits of the ID. this causes a parse error:
inner join on table1.right([ID],4) = table2.right([ID],4);
searched a bit but couldn't find a way to do what im trying to accomplish. is there a proper syntax?
thanks!
View 1 Replies
View Related
Jul 30, 2007
Hi All,
I am trying to achieve loading a fact table using my stage and dimesion data , I was planning to use a Lookup transformation to do this, however I am supposed to use a substring task to because the data in the stage table is in adifferent format from that in the dimensions, how do I incorporate this substring task within the data flow, any help is appreciated.
Thanks
View 7 Replies
View Related
Aug 10, 2007
I have a procedure which has query
like Query 1.
Query 1
Select Clinetid
from clinet
inner join {
select centerid from GetChildCenter(@Centerid)
union
select centerid from getParentCenter(@Centerid)
} as Center c
on c.Centerid = client.Centerid
Query 2
declare @Center table ( centerid int)
insert into @Center
select centerid from getchildCenter(@Centerid) union all select centerid from getparentcenter(@Centerid)
Select Clinetid
from clinet
inner join @Center c on c.Centerid = client.Centerid
I just want to know which one is better performance wise..
because there is millions of rows for table center which is used by function getChildCenter() and GetparentCenter()
View 1 Replies
View Related
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
Mar 10, 2008
Hi,
I want to join a table valued function but function parameter should left joined table's primary key .... this is posible in oracle by pipeline method ..
eg..
SELECT A.Col1,A.Col2,B.Col1,B.Col2
FROM Tab As A LEFT OUTER JOIN TblFunction(A.Pkey) B
ON A.Col1 = B.Col1
any body help me ... thanx in advance..
View 3 Replies
View Related
Oct 22, 2007
Hi there. I've hit some gap in my SQL fundementals. I'm playing with table-valued functions but I can't figure out how to join those results with another table. I found another way to hit my immediate need with a scalar function, but ultimately I'm going to need to use some approach like this. What am I misunderstanding here?
The Given Objects:
function Split(stringToSplit, delimiter) returns table (column: token)
table Words (column: Words.word) -- table of predefined words
table Sentences (column: Sentences.sentence) -- table of sentences; tokens may not be in Words table, etc
The Problems:
1) how do I query a set of Sentences and their Tokens? (using Split)
2) how do I join tables Sentences and Words using the Split function?
The Attempts:
A)
select word, sentence, token
from Words,
Sentences,
dbo.Split(sentence, ' ') -- implicitly joins Split result with Sentences?
where word = token
resulting error: "'sentence' is not a recognized OPTIMIZER LOCK HINTS option."
B)
select word, sentence
from Words, Sentences
where word in (select token from dbo.Split(sentence, ' ')) -- correlated subquery?
resulting error: "'sentence' is not a recognized OPTIMIZER LOCK HINTS option."
View 6 Replies
View Related
Jan 1, 2015
I found something very strange...stufff function working with self join but not working with left or right join,. I have a table
**Id name**
1 samar
1 Harry
2 jack
I want the output as
**Id name**
1 samar Harry
2 jack
The below query works fine with self join
Select b.id, stuff ((select ` ` + a.name from #test a where a.id = b.id
for xml path (``)),1,1,``)
From #test b
Group by id
But when i do right join i get error _ invalid object name `b`. ....
Select b.id, stuff ((select ` ` + a.name from #test a
right join b on b.id = a.id for xml path (``),1,1,``)
From #test b
Group by id
View 4 Replies
View Related
Dec 26, 2007
Hello, thanks in advance for reading this. I am having difficulty trying to get a statement to work.
There is a MAIN table:
ItemNo int identity(1,0),
ItemType tinyint
There is a WETPAINT table:
ItemNo int,
Color varchar(20)
There is a DRYPAINT table:
ItemNo int,
Color varchar(20)
Now, what I want to do is JOIN the MAIN table to either the WETPAINT table or the DRYPAINT table depending on the value of MAIN.ItemType
So I created a table function called getTable:
CREATE FUNCTION [dbo].[gettable]
(
@ItemType int = 1
)
RETURNS
@thistable TABLE
(
Color varchar(20)
)
AS
BEGIN
if @ItemType = 1
insert into @thistable (color) select color from WETPAINT
if @ItemType = 2
insert into @thistable (color) select color from DRYPAINT
RETURN
END
This is all fine and dandy if I iterate through the MAIN table one row at a time, but how can I JOIN the tables, like:
SELECT MAIN.ItemNo, a.Color
FROM MAIN
INNER JOIN gettable(Main.ItemNo) as a
ON a.ItemNo = MAIN.ItemNo
Obviously, there is more than one field in the DRYPAINT and WETPAINT tables, and there is a need to have both tables instead of combining them into one.
Any help in how to create a table alias by passing a value from the select statement would be greatly appreciated! Thanks again.
PS -- I am trying to create a view with this, so I can't use variables and iterate through the MAIN table one row at a time.
View 2 Replies
View Related
Sep 6, 2006
Hello,
Can someone explain why this code contains the following error:
Msg 4104, Level 16, State 1, Line 2
The multi-part identifier "TheTable.StartValue" could not be bound.
CREATE FUNCTION MyFunction(@StartValue int)
RETURNS @MyTable TABLE
(
NextValue int NOT NULL
)
AS
BEGIN
INSERT INTO @MyTable(NextValue)
VALUES (@StartValue + 1)
INSERT INTO @MyTable(NextValue)
VALUES (@StartValue + 2)
RETURN
END
GO
CREATE TABLE TheTable
(
StartValue int NOT NULL
)
GO
INSERT INTO TheTable(StartValue)
VALUES (10)
INSERT INTO TheTable(StartValue)
VALUES (20)
GO
SELECT *
FROM TheTable CROSS JOIN
MyFunction(TheTable.StartValue)
View 6 Replies
View Related
Mar 31, 2015
I'm having some performance issues with a TSQL query. It's a complex statement but the main issue is the correlated query.
How can I convert this
SELECT TOP 5
(SELECT SUM(lt2.col3)
FROM dbo.MyTable2 lt2
WHERElt2.col1 = lt.col1 AND lt2.col2 = lt.col2 AND lt2.id = lt.id ) AS Result
FROM dbo.MyTable1 t1
... to an inner join or a sql2012 window function?
By the way, I just added the TOP 5 myself while testing. It's not in the main query.
View 9 Replies
View Related
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
Jun 30, 2009
we need the list suppliers in a text box,if it were a parameter, we can do it by =join(parameters!Supplier_ID.Value,",")but if the Supplier Id is a field , join (Fields!Supplier_ID.Value,",") doesnt work!how to achieve this.
View 9 Replies
View Related
Dec 21, 2006
hi,
this are my tables...
student
stud_num
pk2
pk3
stud_group
1234
11
22
1
2147
88
66
2
2222
22
22
2
5432
55
44
1
9876
99
77
1
student1
stud_num
pk2
pk3
age
grade
pass
1234
11
22
21
77
0
5432
55
44
23
90
1
9876
99
77
23
90
1
student2
stud_num
pk2
pk3
age
grade
pass
2147
88
66
18
78
0
2222
22
22
15
90
1
and this is what I want to retrieve from these 3 tables
stud_num
pk2
pk3
age
5432
55
44
23
9876
99
77
23
2222
22
22
15
this my query....
SELECT student.stud_num, student.pk2, student.pk3, student1.age, student2.age AS Expr1FROM student INNER JOIN student1 ON student.stud_num = student1.stud_num AND student.pk2 = student1.pk2 AND student.pk3 = student1.pk3 INNER JOIN student2 ON student.stud_num = student2.stud_num AND student.pk2 = student2.pk2 AND student.pk3 = student2.pk3WHERE (student1.grade = '90') AND (student1.pass = '1') AND (student2.grade = '90') AND (student2.pass = '1')
however...it doesnt return any results...
can anyone correct my code?
thanx!
Sheila
View 5 Replies
View Related
Jun 23, 2007
I have two tables in sql server database. Tables are
Authors
AuthorName varchar (primary key), AuthorImage varchar
Threads
ThreadID int Primary Key, ThreadAuthor varchar, ForumID int (Foreign Key), ThreadReplyID int, ThreadPostedDate int
I have this query:
"SELECT ThreadAuthor, ThreadSubject, ThreadPost, ThreadPostedDate , ForumID FROM Threads WHERE ThreadID = " + threadId + " OR ThreadReplyID = " + threadId + " ORDER BY ThreadPostedDate ASC"
but i want to display AuthorImage on my webpage. How to modify the existing query to get the Author's image also.
Plz help me out anyone there.
Thanks
View 3 Replies
View Related
Aug 22, 2007
do they have to have a common primary key?
View 13 Replies
View Related
Sep 6, 2007
i've two tables.
such as tableA and table B
table A has a column named CreatedBY and table B the same column..
now i need to get only the rows which match with table A's createdby column..
suppose tableA has only 2 values. when i make the join with tableB it shows as 4 values
View 8 Replies
View Related
Sep 7, 2007
I need to perform a join on six different tables to produce a report. The biggest join I have ever done has been four tables. The way I did that query was to join three tables and then to perform the final select on the three table join.
Can anyone give me some advice. Should I use the same approach? Or can I just continue to use the keyword INNER JOIN to perform the joins?
View 1 Replies
View Related
Apr 11, 2008
How to join two tables in database(sqlserver2005)(i gave primary key for each table)
View 1 Replies
View Related
Apr 22, 2006
I am curios about what really happens when I join two tables?
Does a SQL server create a runtime table and write that table to disk is there is not sufficent space in RAM?
View 5 Replies
View Related
Jun 11, 2001
I have three tables:
1) Orders - order_id, orderdate
2) ordersdetails - order_id, partnumber, qty
3) products - partnumber
I need an output in following format
Date Partnumber qty
Following query gives the desired results.
select left(orders.orderdate,11) as date, orderdetails.partnumber, SUM(orderdetails.qty) as total
from orderdetails, orders
where orderdetails.partnumber is not null
and orderdetails.order_id = orders.order_id
and orders.orderdate >= {ts'2001-05-01 00:00:00'} and orders.orderdate <= {ts'2001-05-31 23:59:59'}
group by orders.orderdate, orderdetails.partnumber
order by orders.orderdate, total
But I do not have part that have null orders. My goal is to get
1) Get all part numbers, qty in the month of May.
2) at the end attach all partnumbers that have null ordered values to see which one have no orders.
View 1 Replies
View Related
May 10, 2000
I have tables (tab#1, tab#2, tab#3, tab#4) that made of the orginal table(tab#0)
What I want to do is to join all tables(tab#1 through tab#4) to tab#0.
Tables look like;
1)tab#0
key_id, code
2)tab#1
id, code#1
3)tab#2
id, code#2
4)tab#3
id, code#3
5)tab#4
id, code#4
Any idea?
View 1 Replies
View Related
Jan 11, 2001
Hi,
I have 2 tables. One with col1,col2 and second one with
col1,col2,col3. My requirement is to compare col1,col2
of t1 with t2 and update only changed records in t2.
How to implement? Please advise.
Thanks
Sam
View 1 Replies
View Related
Jul 21, 2006
Thank you, Thank you for reading my question!!! :)
I have 3 tables that need to be joined.
(Not necessarily needed info but might help: using Coldfusion with ODBC to Foxpro database)
Table 1: Timecard
--------
loginname date wrknum time
----------- --------- --------- ------
afrank 7/17/06 1 3
afrank 7/17/06 2 2
afrank 7/17/06 3 3
afrank 5/20/06 1 3
rjohn 7/17/06 1 3
.....
Table 2: Defaults
-----------
loginname wrknum
----------- ---------
afrank 1
afrank 2
afrank 3
afrank 4
afrank 5
....
Table 3: Workorders
wrknum description
---------- ---------------
1 descrip1
2 descrip2
.....
The result needs to be for the user afrank, date=7/20
and would look like:
Resultant Table:
loginname wrknum time description
----------- ---------- ------ ------------
afrank 1 3 descrip1
afrank 2 2 descrip2
afrank 3 3 descrip3
afrank 4 NULL descrip4
afrank 5 NULL descrip5
I've tried an outer left join but cannot get the right data. Basically everything from the timecard table and the leftovers from the default table with descriptions for all.
View 3 Replies
View Related
Nov 30, 2004
I've got two tables, one called clientsharedeals and the clientorderdeals. In the first table, I have four fields (Rundate, Accno, Dealid, Nominal) that I need to sum(Nominal), grouping by dealid.
Once I've done this, I need to join to clientorderdeals, also having the same fields plus one extra (Rundate, Accno, Dealid, Nominal and Dealseq). Because of Dealseq, I can have more than one row in the table, matching (Rundate, Accno, Dealid, Nominal) of the first table. However, Dealseq increments, so I need to select max(Dealseq).
My query is doubling up on nominal because in my select statement, I am only using one account number, so I know what the value is for nominal and there are two rows in clientorderdeals - and it is not selecting max(dealseq) but both.
Can someone please cast some pearls my way ?
Thanks
View 1 Replies
View Related
Dec 20, 2004
Could somebody please explain to me how do we join a table onto itself as that is what I was advised to do but I can't quite get where I want to go.
What I want to do is list values from a table,but those values can be just a quote (what would cost if they decided to go for that option) or those values can represent what was spent and invoiced, what is confusing me is that all of that gets saved in the same table and in same columns, so what was quoted for example for AirFares and what was spent gets saved in the same record but when it is "quoted amount" then ID = 1 but when it is invoiced ID = -1 and that is how we know what was quoted and what was invoiced.
But I need to split that one field into two columns one showing AirFareQuoted and one AirFareInvoiced and i have no idea how to achieve this.
I hope this makes sense and somebody can help me
View 14 Replies
View Related
Dec 28, 2004
hi,
I knew how to join 2 tables but i have a process to select 3 tables. I have a sample table and field below. I want to join Parts & Orders using field Prt_no and Supplier & Parts using field Sup _code
Parts table Orders Table Supplier Table
Prt_no Prt_no Sup_code
Prt_name Oh_qt Sup_name
Re_Level Or_no
Pri_amnt
Sup_code
Thanks...
View 2 Replies
View Related
Apr 28, 2006
Hi,
have to tables t1 and t2
t1 is in database db1
t2 is in db db2
Is it possible to join these two tables with an sql statement. or do i have to join my two datasets in my c#- Code
Greetz
View 3 Replies
View Related
Oct 9, 2007
Hey Folks,
I am stuck at one place in data migration........ I have the following source tables having no PK / INDEX / Constraint defined on any of them........
T1
(
ID1 INT,
STYLE VARCHAR(34)
)
T2
(
COL_ID VARCHAR(34),
OBJ_ID VARCHAR(34)
)
T3
(
OUT_ID VARCHAR(34),
ITEM VARCHAR(34),
)
And here is the relation..........
Quote:
T1.STYLE = T2.COL_ID
T2.OBJ_ID = T3.OUT_ID
T3.ITEM = T2.COL_ID
Here is what I have tried with.........
Quote:
SELECT * FROM T3 WHERE ITEM IN
(
SELECT COL_ID
FROM T1
INNER JOIN T2
ON
T1.STYLE = T2.COL_ID
INNER JOIN T3
ON
T2.OBJ_ID = T3.OUT_ID
)
But this query is not helping me out. I mean the number of output records are 0.
Now can any one suggest me a join that includes all the 3 tables, or finetune my query?
Thanks,
Rahul Jha
View 12 Replies
View Related
Apr 9, 2008
Hi,
Hello how can we see the result of this query in single table . I am new with this and i dont know how to use join and all syntax.
SELECT request_session_id,resource_type,
request_status, request_type,request_reference_count,
resource_database_id FROM sys.dm_tran_locks
go
select getdate () as Date,@@servername as servername, name ,size*8/1024 as size_MB
from sys.master_files;
go
SELECT request_session_id,resource_type,
request_status, request_type,request_reference_count,
resource_database_id FROM sys.dm_tran_locks
select cpu ,memusage,hostname from sysprocesses
CREATE PROCEDURE dbo.usp_ShowAvailableSpace
AS
SELECT name AS NameOfFile,
size/128.0 -CAST(FILEPROPERTY(name, 'SpaceUsed' )AS int)/128.0 AS AvailableSpaceInMB
FROM dbo.SYSFILES
GO
EXEC usp_ShowAvailableSpace
select * from sys.sysprocesses
SELECT (a.cntr_value * 1.0 / b.cntr_value) * 100.0 [BufferCacheHitRatio]
FROM (SELECT *, 1 x FROM sys.dm_os_performance_counters
WHERE counter_name = 'Buffer cache hit ratio')
a
,
(SELECT *, 1 x FROM sys.dm_os_performance_counters
WHERE counter_name = 'Buffer cache hit ratio base')
b
select * from sys.dm_exec_sessions
select creation_time ,last_execution_time,execution_count ,
total_physical_reads,last_physical_reads,min_physical_reads,
max_physical_reads,total_logical_writes,
last_logical_writes,min_logical_writes,max_logical_writes,
last_elapsed_time,min_elapsed_time,max_elapsed_time
from sys.dm_exec_query_stats
View 2 Replies
View Related
Apr 9, 2008
sorry for the noob question.
anyone know how to use inner join, left join or right join to join more than 2 tables? e.g. 3 tables
Thanks in advanced
View 4 Replies
View Related