簡體   English   中英

在 PHP 和 MySQL 中的兩個日期和兩個表中選擇

[英]Select Between Two Dates and from Two Tables in PHP and MySQL

請我在下面的查詢中需要有關正確查詢的幫助...

SELECT 
    compute_num, 
    SUM(`shar_cr`) AS shar, 
    SUM(`thri_cr`) AS thri, 
    SUM(`vol_cr`) AS volun 
FROM `member_transacting` 
    WHERE date BETWEEN '$from_date' AND '$end_date' 
RIGHT JOIN regist_members ON member_transacting.compute_num=regist_members.m_compute_num 
ORDER BY date DESC

基本上,我想選擇兩個日期之間數據庫表中的值的總和。 同時,我還想使用他們的公共標識符(在本例中是他們的計算機編號)從注冊成員表中獲取相同的用戶信息。

預期結果

我希望能夠從 member_transacting 表中獲取值的總和,並從 regist_members 表中獲取成員姓名和電話號碼。

我已經在 phpmyadmin 上嘗試了上述查詢,但沒有奏效。 相反,它拋出錯誤,即查詢錯誤。 請幫忙。

我到目前為止的進展 以下來自 Abronsius 教授指南的代碼對我有用

我只需要通過添加 GROUP BY 來調整它,並從 regist_members 表中請求特定字段(全名)

                 SELECT t.compute_num,
                        m.full_name,     
                        SUM( t.`shar_cr`) AS shar, 
                    SUM( t.`thri_cr`) AS thri,
                    SUM( t.`vol_cr`) AS volun
                    FROM `member_trans` t
                JOIN `regist_members` m ON t.`compute_num`=m.`m_computer_no`
                WHERE t.`date` BETWEEN '$from_date' AND '$end_date' GROUP BY t.`compute_num` ORDER BY t.`date` DESC

即使上面的代碼已經給了我大約 90% 我想要的東西,我還不能把它作為答案發布,因為我仍然需要一點幫助才能讓它完美。

我需要的幫助

假設上面的代碼運行良好; 它從兩個表中獲取所需的結果; 但是如果我一次從regist_members 表(例如m.full_name、m.member_bank_name)請求多個數據,它就不起作用。 只有當我保留上面的代碼時它才有效。 它不允許我請求比上面代碼中更多的數據。 請有人指導。

我認為你需要GROUP BY在這里:

SELECT 
    `member_transacting`.`compute_num`, 
    SUM(`shar_cr`) AS shar, 
    SUM(`thri_cr`) AS thri, 
    SUM(`vol_cr`)  AS volun 
FROM `member_transacting` 
WHERE `date` BETWEEN '$from_date' AND '$end_date' 
JOIN `regist_members`
    ON `member_transacting`.`compute_num` = `regist_members`.`m_compute_num` 
GOUP BY `member_transacting`.`compute_num`
ORDER BY `member_transacting`.`compute_num` DESC

最后,我能夠從下面的代碼中得到我想要的確切結果......

           SELECT t.compute_num,
                        m.full_name,     
                        SUM( t.`shar_cr`) AS shar, 
                    SUM( t.`thri_cr`) AS thri,
                    SUM( t.`vol_cr`) AS volun,
                     m.member_bank AS bank_name,
                     m.member_account AS account_no
                    FROM `member_trans` t
                JOIN `regist_members` m ON t.`compute_num`=m.`m_computer_no`
                WHERE t.`date` BETWEEN '$from_date' AND '$end_date' GROUP BY t.`compute_num` ORDER BY t.`date` DESC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM