2013-10-05 52 views
0

我想寫一個SQL查詢,但這對我來說有點複雜。與多個組的MySQL查詢由

我與這些字段的表:

user1, user2, user1Payed, user2Payed. 

user1user2有內部電子郵件。 user1Payeduser2Payed裏面有數字,代表一種付款方式。

這是一個表格,表示用戶所做的所有訂單。 user1user1Payed受意義約束。 user2user2Payed也受意義約束。 我的系統中的訂單是由2個用戶製作的,不需要區分。這意味着訂單可以是同一個用戶。在這種情況下,user1Payeduser2Payed可能會有不同的值。

我的目標是編寫一個查詢,該查詢將計算超過一定數量的總共userPayeduser1Payed + user2Payed)的所有不同用戶。這意味着我需要計算與不同用戶關聯的所有user1Payeduser2Payed的數量。

我明白應該在這裏做一些GROUP BY的使用,但這是不夠的,因爲這不會解決所有的可能性。

採取一個例子,在一個特定的行我user1user2是相同的用戶名,我將如何計算user1Payeduser2Payed的情況?

看來,我應該做的是製作一個表,所有行的某個用戶是user1,然後檢查其user1Payed。 然後創建另一個表,其中包含用戶爲user2和計數user2Payed的所有行。 之後,我需要總結2結果,並從這個結果我可以做出最終結果。

但我不知道我會如何實現這一點。

非常感謝。

+1

發佈一些樣本數據與所需的結果,它會比上述telenovela簡單得多。 – Mihai

+0

「pay」的過去分詞用英語「付費」,而不是「payed」。 –

回答

0

使用UNION合併每個用戶列的數據。

SELECT user, SUM(amount) total 
FROM (
    SELECT user1 user, user1Payed amount 
    FROM table 
    UNION ALL 
    SELECT user2 user, user2Payed amount 
    FROM table 
) u 
GROUP BY user 

我不知道「意義上的約束」是什麼意思,我希望它與答案無關。

+0

偉人,那正是我需要的! :) – lobengula3rd