2016-12-16 47 views
1

有人可以幫助我做到這一點。查詢從相同的表格,多列獲取數據

我用下面的例子來解釋 -

不,不完全是。我有一張表格,其中收集的數據以向客戶收取的形式或收入以及客戶的付款收取。因此,可以說收入的收入是3次,即2016年12月18日,2016年12月19日至2016年20日和2016年12月20日收取的費用,客戶的付款金額爲2016年12月19日,金額爲7000.00,然後是20 -12-2016與金額2000.00。此表中的條目被插入爲 -

表名 - TEMP1

CustidId金額PDATE AMOUNT2 1 5000.00 18-12-2016 0.00 1 5000.00 19-12-2016 0.00 1 0.00 19-12-2016 7000.00 1 5000.00 20-12-2016 0.00 1 0.00 20-12-2016 2000.00

我需要這個表格的輸出在下面的格式 -

CUSTID銦酸過時TotalRev PAYMENTDATE PaymentAmount 1 18-12-2016 20-12-2016 15000.00 19-12-2016 7000.00 1 18-12-2016 20-12-2016 20-12-2016 2000.00

該數據適用於1位客戶和相同方式可以有多個客戶基於custid收入和收集的數據必須顯示。上例中的第二行可以有In Date和Out date作爲空白,但第二行的TotalRev列必須爲空或零。

請幫助我。

+1

您是試圖從每個日期中選擇最高金額2還是每天總結所有金額2? – dfundako

回答

0
SELECT 
    Id 
    , pdate 
    , SUM(amount2) AS amount2 
    , SUM(Amount) AS Amount 
FROM 
    Temp1 
GROUP BY 
    Id, pdate; 
-1

據我瞭解,您需要每個pdate列的總和,對不對?

如果是的話,你也許可以使用此查詢:

select t1.id, SUM(t1.amount),t1.pdate, SUM(t1.amount2) from temp1 t1 
group by t1.id, t1.pdate 
+0

此查詢不會運行。 – dfundako

+0

你需要一個「GROUP BY」。 – DVT

+0

謝謝你們,我稍後在編輯中加入。對於那個很抱歉。 –

0

可以查詢這樣的...

SELECT ID, Pdate, max(Amount) as Amount, max(amount2) as Amount2) 
    from temp1 group by Id, Pdate 
0

可以使用group by clause聚合記錄。

該組應包含一列列表,您希望從中選擇所有獨特的組合。

您可以將該組合與一個或多個aggregated functions,如SUM,MINMAX。將列傳遞給這些函數將例如返回由group by子句返回的每個給定組合的總和。

-- Total amount and amount2 for each combination of Id and PDate . 
SELECT 
    t1.id, 
    SUM(t1.amount) AS amount, 
    t2.pdate, 
    SUM(t2.amount2) AS amount2 
FROM 
    temp1 t1 
     join temp1 t2  on t1.id = t2.id 
          and t2.amount2 >0 where t1.amount1 >0 
GROUP BY 
    t1.id, 
    t2.pdate 
; 
相關問題