User not logged in - login - register
Home Calendar Books School Tool Photo Gallery Message Boards Users Statistics Advertise Site Info
go to bottom | |
 Message Boards » » Official SQL Query Thread Page [1]  
1985
All American
2175 Posts
user info
edit post

I'll start:


I can do this with tons of nested queries, but there has got to be a better way.
I have a table of related products like

ONE | TWO | THREE | FOUR
A1       A2       A3       A4
B1       B2       B3       B4
C1       C2       C3       C4
...

I have another table with product details

Product | detail 1 | detail 2| ...
A1           5453           245
B3           453           2342
A2           675           76
A1           458           357
...

I want to select somethign that relates the details of the products, using the relation of the first table, e.g

One | SUM(detail 1)| AVG(detail 2) | Two | SUM(detail 1) | AVG(detail 2) | ...
A1       9823           7455           A2           564846           682342
B1 .....


The problem is table two has multiple entries per product, and different times per product, so A2 might be listed 30 times and A1 only twice.
Thoughts?

[Edited on May 15, 2009 at 2:38 PM. Reason : .]

[Edited on May 15, 2009 at 2:39 PM. Reason : spacing]

5/15/2009 2:36:28 PM

qntmfred
retired
40818 Posts
user info
edit post

message_topic.aspx?topic=484972

5/15/2009 2:47:09 PM

1985
All American
2175 Posts
user info
edit post

doh, lock, delete, suspend

5/15/2009 2:53:36 PM

Ernie
All American
45943 Posts
user info
edit post

SELECT sick_burn FROM qntmfred WHERE thread = '[old]';

5/15/2009 3:11:29 PM

1985
All American
2175 Posts
user info
edit post

^ hahaha

5/15/2009 3:15:31 PM

philihp
All American
8349 Posts
user info
edit post

I'm going to name your tables Alpha and Beta to differentiate. I'm also going to assume your first table (alpha) will only ever have 4 fields; that it will always have four products per row. This really should be a star schema BTW.

ALPHA
ONE | TWO | THREE | FOUR
A1 A2 A3 A4
B1 B2 B3 B4
C1 C2 C3 C4

BETA
Product | detail 1 | detail 2| ...
A1 5453 245
B3 453 2342
A2 675 76
A1 458 357

SELECT
alpha.one,
sum(beta1.detail1),
avg(beta1.detail2),
alpha.two,
sum(beta2.detail1),
avg(beta2.detail2),
alpha.three,
sum(beta3.detail1),
avg(beta3.detail2),
alpha.four,
sum(beta4.detail1),
avg(beta4.detail2)
FROM alpha
LEFT JOIN beta beta1 ON
(alpha.one = beta1.product)
LEFT JOIN beta beta2 ON
(alpha.two = beta2.product)
LEFT JOIN beta beta3 ON
(alpha.three = beta3.product)
LEFT JOIN beta beta4 ON
(alpha.four = beta4.product)

5/16/2009 1:29:29 PM

Novicane
All American
15416 Posts
user info
edit post

whoops other thread >.<

[Edited on July 31, 2009 at 8:27 AM. Reason : wrong thread]

7/31/2009 8:26:55 AM

Stimwalt
All American
15292 Posts
user info
edit post

Nice coding Phil.

7/31/2009 10:16:24 AM

 Message Boards » Tech Talk » Official SQL Query Thread Page [1]  
go to top | |
Admin Options : move topic | lock topic

© 2024 by The Wolf Web - All Rights Reserved.
The material located at this site is not endorsed, sponsored or provided by or on behalf of North Carolina State University.
Powered by CrazyWeb v2.39 - our disclaimer.