1
このSQLの実行合計に関する助けが必要です。私は提案のいくつかを試してみましたが、それを100%稼働させることはできませんでした。私の合計は順調ではありません。毎月のMySQLの累積合計
クエリは、最初に5カラットを超える石、次に5カラット以下の石について、毎日生成される石の数とカラットの数を示します。したがって、最初の列である日付の後に、4つの列が表示されます。
次に、次の2つの列は、石を一緒にまとめて、カラットを合計して1日合計にします。
その後、私は石とカラットの実行合計を作成する2つの列を追加したいと思います。
ご協力いただければ幸いです。ありがとうございました!
select
`dbo_List_Dates`.`Full_Date` AS `Full_Date`,
if(isnull(`qry_Register_Over5ct`.`StonesO5`),
0,`qry_Register_Over5ct`.`StonesO5`) AS `StonesO5`,
if(isnull(`qry_Register_Over5ct`.`CaratsO5`),
0,format(`qry_Register_Over5ct`.`CaratsO5`,3)) AS `CaratsO5`,
if(isnull(`qry_Register_Under5ct`.`StonesU5`),
0,`qry_Register_Under5ct`.`StonesU5`) AS `StonesU5`,
if(isnull(`qry_Register_Under5ct`.`CaratsU5`),
0,format(`qry_Register_Under5ct`.`CaratsU5`,3)) AS `CaratsU5`,
(if(isnull(`qry_Register_Over5ct`.`StonesO5`),
0,`qry_Register_Over5ct`.`StonesO5`) + if(isnull(`qry_Register_Under5ct`.`StonesU5`),
0,`qry_Register_Under5ct`.`StonesU5`)) AS `Stones`,
format((if(isnull(`qry_Register_Over5ct`.`CaratsO5`),
0,`qry_Register_Over5ct`.`CaratsO5`) + if(isnull(`qry_Register_Under5ct`.`CaratsU5`),
0,`qry_Register_Under5ct`.`CaratsU5`)),3) AS `Carats`,
date_format(`dbo_List_Dates`.`Full_Date`,'%Y-%m') AS `Date_Filter`
from
(
(`dbo_List_Dates`
left join `qry_Register_Over5ct`
on((`dbo_List_Dates`.`Full_Date`=qry_Register_Over5ct`.`Shift_Date`))
)
left join `qry_Register_Under5ct`
on((`dbo_List_Dates`.`Full_Date`=`qry_Register_Under5ct`.`Shift_Date`))
)
where
(date_format(`dbo_List_Dates`.`Full_Date`,'%Y-%m') = date_format(now(),'%Y-%m'))
order by
`dbo_List_Dates`.`Full_Date`
limit 0,31
参照[Sqlfiddle、なぜ私は気にしなければならないのは何ですか?](http://stackoverflow.com/q/38899464) – Drew
なぜMySQLのタグ? – Strawberry
'qry_Register_Over5ct'と' qry_Register_Under5ct'ビューはありますか?私は石サイズを決定するために同じテーブルを2回スキャンするので、これは既に非効率的だと思います。 –