Files
myprojplanet_vite/_LIMBO/queryoriginale.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

113 lines
5.8 KiB
SQL

SELECT TOP 10000
T.*
,i.DescrizioneTipologia
,f.DescrizioneStatoProdotto
,n.DescrizioneFormato
,y.DescrizioneCollana
,z.AutoriCompleti
,i2.DescrArgomento
,z3.CasaEditrice ,q.QtaDisponibile FROM T_WEB_Articoli T
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 LEFT 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
LEFT 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
LEFT 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
LEFT 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
LEFT 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
LEFT 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
JOIN(
SELECT a.IdAutore, CONCAT(a.Nome, ' ', a.Cognome) AS AutoreCompleto
FROM T_WEB_Autori a
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
GROUP BY T1.IdArticolo, T1.ListaAutori
) z ON T.IdArticolo = z.IdArticolo
LEFT 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 LEFT 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 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%')