MySQL 接続間隔の年と月のデフォルト値を設定する
P粉924915787
P粉924915787 2024-02-25 18:16:02
0
1
323

私のクエリには問題があります。 2 つのテーブルがあり、それらを結合して最初のテーブルの主キーに基づいた結果を取得したいのですが、最初のテーブルのデータが 1 つ欠落しています。

これは私のヴァイオリンです

ご覧のとおり、月 1 の「xx3」が欠落しています

左右の接続を変えてみましたが結果は同じでした。 ご覧のとおり、coalesce(sum(b.sd_qty),0) を合計に設定する必要があります。qty がない場合は、0 はデフォルト値です。

P粉924915787
P粉924915787

全員に返信(1)
P粉287726308

テーブルを異なる日付に相互結合する必要もあります:

SELECT a.item_code,
       COALESCE(SUM(b.sd_qty), 0) 合計,
       DATE_FORMAT(d.sd_date, '%m-%Y') month_year
項目aから
クロス結合 (
  SELECT DISTINCT sd_date
  販売詳細から
  WHERE sd_date >= '2020-04-01' - 間隔 3 か月および sd_date 

あるいは、MySql 8.0 の場合は、再帰的 CTE を使用して、結果が必要なすべての月の開始日を返します。これをテーブルに相互結合できます。

WITH RECURSIVE 日付 AS (
  '2020-04-01' を選択 - sd_date として 3 か月間隔
  すべてを結合する
  sd_date 間隔 1 か月を選択
  FROMの日付
  WHERE sd_date 間隔 1 か月 

表示デモ

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート