2016-09-02 3 views
1

こんにちは、私のERPシステムの皆さんデータベースの一部を特定のタイプのデータから取り出したい たとえば、今月の購入で追加された行の数が必要な場合月の日付条件でmysqlテーブルから正確なデータを取得する方法

select count(receive_no) FROM tbl where contact_id=".$contactid." AND MONTH(created_on) = MONTH(CURDATE()); 

が、それは誤った結果 を取得し、私は現在の月に結果の合計をしたいならば、私は

select sum(price) FROM tbl where contact_id=".$contactid." AND MONTH(created_on) = MONTH(CURDATE()) 

を使用して、私は、行または購入の今日の日付番号をしたいならば、私は

を使用
select count(receive_no) FROM tbl where contact_id=".$contactid." AND created_on >= CURDATE() 

私は購入の今日の合計をしたいかのように、私は

select sum(price) FROM tbl where contact_id=".$contactid." AND created_on >= CURDATE() 

を使用し、私のテーブルには、2016年9月1日のように、フィールドの日時に作成された午前11時56分45秒 はそう私に優れたクエリを提案してください、問題は、最後の3つのクエリであるが、最初のものは、昨年今月今年今月からあなたのデータを取得します - もしあれば - それは本当にはっきりしていない正確なデータに 感謝

+0

? – RiggsFolly

+1

問題がもしあれば、最後の3つのクエリに問題はありますが、最初のものは今年の今年のデータを取得します*と*今年の昨年、前年など – jeroen

+1

@jeroenが言ったことと、これらのクエリは、あなたが結果を望む月の1日に実行した場合にのみ機能します。あなたが8月のデータが好きかもしれないので、9月初めにそれらを実行すれば、9月のデータを報告するでしょう – RiggsFolly

答えて

0

をフェッチ1年前など。

それで、あなたが必要なもの(それを書くには、いくつかの方法があります...)のようなものです:あなたが得る結果と間違っている何

select count(receive_no) FROM tbl where 
     contact_id=".$contactid." 
    AND MONTH(created_on) = MONTH(CURDATE()) 
    AND YEAR(created_on) = YEAR(CURDATE()) 
+0

ありがとう私の問題が解決されました – phpdev

関連する問題