我運行的Oracle 11g查詢,返回結果這樣的:如何將隨機行分組,直到它們匹配一個值?
|ID| VALUE|
|01| 2|
|02| 1|
|03| 5|
|04| 1|
|05| 4|
|06| 2|
所以當我索要「ID的組,它的總和4」我收到:
|01| 2|
|06| 2|
OR
|01| 2|
|02| 1|
|04| 1|
我不在乎哪個組是它,它只需要精確的SUM。
紅利問題:如何將隨機行分組,直到它們匹配CLOSE值爲止? +或 -
編輯:查詢:
SELECT * FROM (
SELECT d.date, d.pdv, d.coo, SUM(i.itemTotal) total
, SUM(CASE
WHEN f.id > 0 THEN 0
ELSE 1
END) isInvalid
FROM tb_doc d
JOIN tb_docItem i ON i.pdv = d.pdv
AND i.coo = d.coo
AND i.status = 'V'
JOIN map_product p ON p.id = i.productId
LEFT JOIN tmp_family f ON f.id = p.productFamily
WHERE d.date BETWEEN '01-DEZ-2013' AND '31-DEZ-2013'
GROUP BY d.date, d.pdv, d.coo
) WHERE invalid = 0;
向我們顯示您的查詢,所以我們知道您獲得該結果的方式。 – user2989408
這是一個複雜的查詢,我不認爲它真的很重要。但我會在幾分鐘後發佈。 – GxFlint
所以你真的想要查詢返回的行的組合,顯示'總數'的總和是4的'日期,pdv,coo'?你真的想要4還是隻是一個例子,目標可能會改變?大概多少行你期望從該查詢? –