Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
SQL Select with Join group
Message
From
06/06/2019 14:07:12
 
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Miscellaneous
Thread ID:
01668934
Message ID:
01668941
Views:
77
This message has been marked as the solution to the initial question of the thread.
>>>Hi,
>>>
>>>How I would create a SQL Select for the following case:
>>>Table 1
>>>
>>>PART_NO   PART_PK    PART_QTY
>>>"123"          1                 34
>>>"ABC"         2                 0
>>>"NBZ"         3                 12
>>>
>>>
>>>Table 2
>>>
>>>PART_PK       QTY
>>>1                    3
>>>1                    4
>>>1                    10
>>>3                     1
>>>2                     6
>>>3                     2
>>>2                     35
>>>
>>>
>>>Resulting query should be
>>>
>>>PART_NO         PART_QTY      ACT_QTY   (Act Qty is SUM of QTY in Table 2 field QTY)
>>>"123"                34                   17
>>>"ABC"               0                      41
>>>"NBZ"              12                     3
>>>
>>>
>>>TIA
>>>
>>>UPDATE: I know that the SQL Select should consist of two SQL Select:
>>>
>>>select PART_NO, PART_QTY ..... (SELECT SUM(QTY) AS ACT_QTY from Table2 GROUP BY PART_PK) AS ACT_QTY FROM Table1
>>>
>>>
>>>But I don't know how to "connect" the main SQL Select with the SUB-SQL Select
>>
>>Dmitry,
>>
>>A single statement should suffice, I think:
>>
>>
>>SELECT T1.PART_NO, T1.PART_QTY, SUM(T2.QTY) ;
>>	FROM T1 INNER JOIN T2 ON T2.PART_PK = T1.PART_PK ;
>>	GROUP BY 1, 2
>>
>
>Antonio,
>
>First, thank you very much.
>Your approach is much simpler, of course. But I also need several other fields from the T1 (e.g. PART_DESCR). So, would I have to use MAX(T1.PART_DESCR) as PART_DESCR to get those "extra" fields?

Dmitry,

This will give all the fields from first table.
SELECT T1.*, TS.QTY ;
	FROM T1 INNER JOIN (SELECT PART_PK, SUM(QTY) AS QTY FROM T2 GROUP BY PART_PK) TS ON TS.PART_PK = T1.PART_PK
----------------------------------
António Tavares Lopes
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform