Files
myprojplanet_vite/_LIMBO/QueryFdevCatalogo.sql
Surya Paolo 1298184b2e - Corretta query di estrapolazione libri su GM (Marco)
- aggiornato bestseller su fatlast1Y
- non mostrare piu i libri che non hanno l'immagine (sul catalogo).
- metti online i compressi
2025-06-16 19:36:48 +02:00

235 lines
9.8 KiB
SQL

SELECT T.*
,i.DescrizioneTipologia
,f.DescrizioneStatoProdotto
,n.DescrizioneFormato
,y.DescrizioneCollana
,z.AutoriCompleti
,i2.DescrArgomento
,z3.CasaEditrice
,q.QtaDisponibile
FROM
T_WEB_Articoli T
WITH (noLock)
RIGHT JOIN
( SELECT IdArticolo,
MAX(DataOra) AS data
FROM
T_WEB_Articoli
GROUP BY
IdArticolo ) b
ON
T.IdArticolo = b.IdArticolo
AND T.DataOra = b.data
RIGHT JOIN
( SELECT
e.IdStatoProdotto,
e.Descrizione as DescrizioneStatoProdotto
FROM
T_WEB_StatiProdotto e
JOIN
(
SELECT
IdStatoProdotto,
MAX(DataOra) as data1
FROM
T_WEB_StatiProdotto
GROUP BY
IdStatoProdotto ) c
ON
e.IdStatoProdotto = c.IdStatoProdotto
AND e.DataOra = c.data1 ) f
ON
T.IdStatoProdotto = f.IdStatoProdotto
RIGHT JOIN
(
SELECT
g.IdTipologia,
g.Descrizione as DescrizioneTipologia
FROM
T_WEB_Tipologie g
JOIN
(
SELECT
IdTipologia,
MAX(DataOra) as data1
FROM
T_WEB_Tipologie
GROUP BY
IdTipologia ) h
ON
g.IdTipologia = h.IdTipologia
AND g.DataOra = h.data1 ) i
ON
T.IdTipologia = i.IdTipologia
RIGHT JOIN
(
SELECT
l.IdTipoFormato,
l.Descrizione as DescrizioneFormato
FROM
T_WEB_TipiFormato l
JOIN
(
SELECT
IdTipoFormato,
MAX(DataOra) as data1
FROM
T_WEB_TipiFormato
GROUP BY
IdTipoFormato ) m
ON
l.IdTipoFormato = m.IdTipoFormato
AND l.DataOra = m.data1 ) n
ON
T.IdTipoFormato = n.IdTipoFormato
RIGHT JOIN
(
SELECT
v.IdCollana,
v.Descrizione as DescrizioneCollana
FROM
T_WEB_Collane v
INNER JOIN
(
SELECT
IdCollana,
MAX(ID) as MaxID
FROM
T_WEB_Collane
GROUP BY
IdCollana ) x
ON
v.IdCollana = x.IdCollana
AND v.ID = x.MaxID ) y
ON
T.IdCollana = y.IdCollana
RIGHT JOIN
(
SELECT
g2.IdArgomento,
g2.Descrizione as DescrArgomento
FROM
T_WEB_Argomenti g2
INNER JOIN
(
SELECT
IdArgomento,
MAX(DataOra) as data12
FROM
T_WEB_Argomenti
GROUP BY
IdArgomento ) h
ON
g2.IdArgomento = h.IdArgomento
AND g2.DataOra = h.data12 ) i2
ON
T.ListaArgomenti = i2.IdArgomento
RIGHT JOIN ( SELECT
o.Codice,
o.QtaDisponibile
FROM
T_WEB_Disponibile o
JOIN
(
SELECT
Codice,
MAX(DataOra) as data1
FROM
T_WEB_Disponibile
GROUP BY
Codice ) p
ON
o.Codice = p.Codice
AND o.DataOra = p.data1 ) q
ON
T.IdArticolo = q.Codice
RIGHT JOIN
(
SELECT
a3.IdMarchioEditoriale,
a3.Descrizione as CasaEditrice
FROM
T_WEB_MarchiEditoriali a3
JOIN
(
SELECT
IdMarchioEditoriale,
MAX(DataOra) as maxData
FROM
T_WEB_MarchiEditoriali
GROUP BY
IdMarchioEditoriale ) aa3
ON
a3.IdMarchioEditoriale = aa3.IdMarchioEditoriale
AND a3.DataOra = aa3.maxData ) z3
ON
T.IdMarchioEditoriale = z3.IdMarchioEditoriale
RIGHT JOIN
(
SELECT T1.IdArticolo, STUFF((
SELECT
',' + ISNULL(A2.AutoreCompleto, '')
FROM
(
SELECT
CAST('<root><x>' + REPLACE(T1.ListaAutori, ',', '</x><x>') + '</x></root>' AS XML) AS DataXML ) X
CROSS APPLY
X.DataXML.nodes('/root/x') AS A(x)
CROSS APPLY
(
SELECT
TRY_CAST(LTRIM(RTRIM(A.x.value('.', 'VARCHAR(100)'))) AS INT) AS AutoreID ) CA
LEFT JOIN
(
SELECT
a.IdAutore,
CONCAT(a.Nome, ' ', a.Cognome) AS AutoreCompleto
FROM
T_WEB_Autori a
RIGHT JOIN
(
SELECT
IdAutore,
MAX(DataOra) AS maxData
FROM
T_WEB_Autori
GROUP BY
IdAutore ) aa
ON
a.IdAutore = aa.IdAutore
AND a.DataOra = aa.maxData
) A2
ON
CA.AutoreID = A2.IdAutore FOR XML PATH(''),
TYPE ).value('.', 'NVARCHAR(MAX)') ,
1 ,
1 ,
'') AS AutoriCompleti
FROM T_WEB_Articoli T1
WHERE t1.DataOra = (select max(DataOra) AS DataOra from T_web_articoli As h WHERE h.IdArticolo = T1.IdArticolo)
GROUP BY T1.IdArticolo, T1.ListaAutori ) z ON T.IdArticolo = z.IdArticolo
WHERE
(
DescrizioneStatoProdotto = 'In commercio'
OR DescrizioneStatoProdotto = 'Prossima uscita/pubblicazione'
OR DescrizioneStatoProdotto = 'Prossima uscita'
OR DescrizioneStatoProdotto = 'In prevendita'
OR DescrizioneStatoProdotto = '2023 in commercio')
AND (
DescrizioneTipologia = 'Libri'
OR DescrizioneTipologia = 'Cartolibro'
OR DescrizioneTipologia = 'Carte')
AND (
Ean13 NOT LIKE 'USATO%')
ORDER BY T.IdArticolo DESC, Id DESC