[英]Trouble combining Two sql queries into one
我有一個表,其中包含各個成員記錄的截止日期。 每行包含四個字段:
ID | Next_Due | Next_Due_Missed | Amount
=============================================================
123 | 2010-12-05 | NULL | 41.32
456 | 2010-12-10 | 2010-12-05 | 21.44
789 | 2010-12-20 | 2010-12-10 | 39.99
ID是每個成員的唯一ID
下一個到期日-是其正常訂閱期的下一個到期日
僅當收集第一輪訂閱付款時出錯時,才會填充Next_Due_Missed。
金額是擁有訂閱的金額。
我的目標是創建一個SQL查詢,以檢查next_due_missed是否存在並且不為null。 如果是這樣,請將該值用作“ $ date”。 如果不是,則設置$ date = next_due的值
這很容易做到,除了在正常情況下將結果按Next_Due分組外,如果結合當前的方式,將省略next_due_missed。
每個付款期間,可能有600多個記錄,其next_due等於所需的日期(而10-15等於next_due_missed)。
我當前的查詢是:
$stmt = $db->prepare("SELECT next_due, next_due_missed FROM table_name WHERE (next_due > CURDATE() OR next_due_missed > CURDATE()) GROUP BY next_due ASC");
但是,這僅返回next_due的結果。 省略GROUP BY子句將返回數百個結果(而我需要在此階段進行分組)。
同樣,稍后,我將需要分解這些單獨的記錄,並根據'next_due'和'next_due_missed'值實際創建付款記錄。
有什么想法我想念的嗎?
除了獲取DISTINCT值外,我不確定您的GROUP BY的用途,但是如果您提供了部分查詢,請不要使用它:
SELECT coalesce(next_due_missed, next_due) as EffectiveNextDue
FROM table_name
WHERE coalesce(next_due_missed, next_due) > CURDATE()
GROUP BY coalesce(next_due_missed, next_due)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.