This commit is contained in:
paoloar77
2024-12-07 20:30:37 +01:00
parent b641999fcd
commit 59539b2fab
2 changed files with 46 additions and 23 deletions

View File

@@ -30,13 +30,45 @@ class ArticleController extends Controller
->leftJoin(DB::raw('(SELECT CodArticoloGM, SUM(Qta) as totaleVenduti FROM T_WEB_Ordini GROUP BY CodArticoloGM) o'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'o.CodArticoloGM');
})
->select('T_WEB_Articoli.*',
'f.DescrizioneStatoProdotto',
'i.DescrizioneTipologia',
'n.DescrizioneFormato',
DB::raw('COALESCE(o.totaleVenduti, 0) as totaleVenduti'))
->where('DescrizioneStatoProdotto','In commercio')
->where('DescrizioneTipologia','Libri')
->leftJoin(DB::raw('(SELECT CodArticoloGM, SUM(Qta) as venduti3mesi, RANK() OVER (ORDER BY SUM(Qta) DESC) as rank3M
FROM T_WEB_Ordini
WHERE DataOra >= DATE_SUB(NOW(), INTERVAL 3 MONTH)
GROUP BY CodArticoloGM) p'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'p.CodArticoloGM');
})
->leftJoin(DB::raw('(SELECT CodArticoloGM, SUM(Qta) as venduti6mesi, RANK() OVER (ORDER BY SUM(Qta) DESC) as rank6M
FROM T_WEB_Ordini
WHERE DataOra >= DATE_SUB(NOW(), INTERVAL 6 MONTH)
GROUP BY CodArticoloGM) q'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'q.CodArticoloGM');
})
->leftJoin(DB::raw('(SELECT CodArticoloGM, SUM(Qta) as venduti1anno, RANK() OVER (ORDER BY SUM(Qta) DESC) as rank1Y
FROM T_WEB_Ordini
WHERE DataOra >= DATE_SUB(NOW(), INTERVAL 1 YEAR)
GROUP BY CodArticoloGM) r'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'r.CodArticoloGM');
})
->leftJoin(DB::raw('(SELECT CodArticoloGM, MAX(DataOra) as ultimoOrdine
FROM T_WEB_Ordini
GROUP BY CodArticoloGM) s'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 's.CodArticoloGM');
})
->select(
'T_WEB_Articoli.*',
'f.DescrizioneStatoProdotto',
'i.DescrizioneTipologia',
'n.DescrizioneFormato',
DB::raw('COALESCE(o.totaleVenduti, 0) as totaleVenduti'),
DB::raw('COALESCE(p.venduti3mesi, 0) as venduti3mesi'),
DB::raw('COALESCE(p.rank3M, 0) as rank3M'),
DB::raw('COALESCE(q.venduti6mesi, 0) as venduti6mesi'),
DB::raw('COALESCE(q.rank6M, 0) as rank6M'),
DB::raw('COALESCE(r.venduti1anno, 0) as venduti1anno'),
DB::raw('COALESCE(r.rank1Y, 0) as rank1Y'),
DB::raw('s.ultimoOrdine')
)
->where('DescrizioneStatoProdotto', 'In commercio')
->where('DescrizioneTipologia', 'Libri')
->orderBy('totaleVenduti', 'desc')
->get();