2017-12-07 24 views
0

私は非常に新しいSQLで自分自身を教えています。私は2つのSQLを持っていますが、苦労して働いています。今私はそれらを1つに結合する必要があり、私は失われています。SQL 2つの完全に別々のテーブルを1つに結合する

SELECT 
    s.lastfirst, 
    s.student_number, 
    SUM(tr.howmany) 
FROM 
    students s 
JOIN 
    truancies tr ON s.id = tr.studentid 
WHERE 
    s.enroll_status = 0 AND 
    s.schoolid = ~(curschoolid) 
GROUP BY 
    s.lastfirst, s.student_number 
HAVING 
    SUM(tr.howmany) > 0 
ORDER BY 
    s.lastfirst 

そして、この表:私は本当に探しています何

SELECT 
    S.DCID as DCID, 
    S.LASTFIRST as LASTFIRST, 
    S.STUDENT_NUMBER as STUDENT_NUMBER, 
    S2.FC_SRVC_HRS_DUE as FC_SRVC_HRS_DUE, 
    CASE 
     WHEN S2.FC_SRVC_HRS_COMPLETED IS NULL 
      THEN '0' 
      ELSE S2.FC_SRVC_HRS_COMPLETED 
    END AS FC_SRVC_HRS_COMPLETED, 
    S2.FC_SRVC_HRS_BUYOUT as FC_SRVC_HRS_BUYOUT, 
    CASE 
     WHEN S2.FC_SRVC_HRS_COMPLETED IS NULL 
      THEN S2.FC_SRVC_HRS_DUE * S2.FC_SRVC_HRS_BUYOUT 
      ELSE ((S2.FC_SRVC_HRS_DUE - S2.FC_SRVC_HRS_COMPLETED) * S2.FC_SRVC_HRS_BUYOUT) 
    END as Balance_Due 
FROM 
    STUDENTS S, U_STUDENTSUSERFIELDS S2 
WHERE 
    S.DCID = S2.STUDENTSDCID AND 
    s.enroll_status = 0 AND 
    s.schoolid = ~(curschoolid) AND 
    (((S2.FC_SRVC_HRS_DUE - S2.FC_SRVC_HRS_COMPLETED) * S2.FC_SRVC_HRS_BUYOUT) > 0 OR 
    ((S2.FC_SRVC_HRS_DUE - S2.FC_SRVC_HRS_COMPLETED) * S2.FC_SRVC_HRS_BUYOUT) IS NULL) AND 
    S2.FC_SRVC_HRS_DUE >.1 
ORDER BY 
    s.lastfirst 

は、これらの両方の合計です。最初のテーブルからSUM(tr.howmany)が必要ですが、残高は2番目ですが、そこにあるフィルタが必要です。これは学生によってソートされます。私は理にかなっているといい。いかなる援助も感謝します。

+0

あなたの現在および予想される結果をお知らせください。 – DineshDB

+1

[古いスタイルのジョインを使って蹴るのが悪い](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins。 aspx) - ANSI - ** 92 ** SQL標準(** 25年**前)のold * style *カンマ区切りのテーブル*スタイルのリストが*適切な* ANSI 'JOIN'構文に置き換えられました。使用は推奨されない –

答えて

0

あなたは一緒に2つの別々のSQL SELECTステートメントに参加することができます。

Eg: 
Select A.id, A.value, B.value 
From (select id, count(*) as value from TableA ...) AS A 
join (select id, sum(field) as value from TableB ...) AS B 
on A.id = B.id 
order by A.id 

を限り、あなたは仕事とこれに参加するには、共通のフィールドを持っているよう。あなたの場合、student_numberは良い候補のように見えます。あなたはサブクエリの外で注文する必要があります。

関連する問題