@@ -1777,97 +1777,149 @@ FROM Funcionarios
17771777WHERE NOT nr_telemovel LIKE ' 91%' ;
17781778```
17791779
1780- -- 13. Clientes cujo NIF está entre 100000000 e 200000000 (BETWEEN)
1780+ ### 13. Clients whose tax_id is between 100000000 and 200000000
1781+
1782+ ``` sql
17811783SELECT id_cliente, nome, nif
17821784FROM Clientes
17831785WHERE nif BETWEEN 100000000 AND 200000000 ;
1786+ ```
1787+
1788+ 14 . List all reviews with visibility set to FALSE
17841789
1785- -- 14. Listar todas as avaliações com NOT visibilidade
1790+ ``` sql
17861791SELECT id_cliente, avaliacao, comentario
17871792FROM Avaliacao
17881793WHERE NOT visibilidade;
1794+ ```
1795+
1796+ 15 . Products ordered by purchase price, ascending
17891797
1790- -- 15. Produtos ordenados por preço de compra, de forma ascendente
1798+ ``` sql
17911799SELECT id_produto, designacao, preco_compra
17921800FROM Produtos
17931801ORDER BY preco_compra ASC ;
1802+ ```
1803+
1804+ 16 . Show orders with status "canceled" OR value above 25 EUR
17941805
1795- -- 16. Mostrar encomendas com estado "cancelado" OU valor superior a 25 EUR
1806+ ``` sql
17961807SELECT id_encomenda, estado_encomenda, valor
17971808FROM encomendas
17981809WHERE estado_encomenda = ' cancelado' OR valor > 25 ;
1810+ ```
1811+
1812+ 17 . Count private and public events (grouped by privacy)
17991813
1800- -- 17. Listar eventos privados e públicos (GROUP BY tipo evento)
1814+ ``` sql
18011815SELECT evento_privado, COUNT (* ) AS total
18021816FROM Eventos
18031817GROUP BY evento_privado;
1818+ ```
18041819
1805- -- 18. Mostrar clientes sem data de nascimento (IS NULL)
1820+ 18 . Show clients with no birth date (NULL)
1821+
1822+ ``` sql
18061823SELECT id_cliente, nome
18071824FROM Clientes
18081825WHERE data_nascimento IS NULL ;
1826+ ```
1827+
1828+ 19 . Distinct products with sale price above 4 EUR
18091829
1810- -- 19. Produtos com designação distinta e preço superior a 4 EUR
1830+ ``` sql
18111831SELECT DISTINCT designacao, preco_venda
18121832FROM Produtos
18131833WHERE preco_venda > 4 ;
1834+ ```
1835+
1836+ 20 . List clients whose email contains "gmail"
18141837
1815- -- 20. Listar clientes cujo email contém "gmail"
1838+ ``` sql
18161839SELECT id_cliente, nome, email
18171840FROM Clientes
18181841WHERE email LIKE ' %gmail%' ;
1842+ ```
1843+
1844+ 21 . Orders from supplier "SnackMasters Portugal"
18191845
1820- -- 21. Encomendas do fornecedor “SnackMasters Portugal”
1846+ ``` sql
18211847SELECT id_encomenda, valor
18221848FROM encomendas
18231849WHERE id_fornecedor = (SELECT id_fornecedor FROM Fornecedores WHERE nome_empresa LIKE ' %SnackMasters Portugal%' );
1850+ ```
1851+
1852+ 22 . Clients ordered by modification date (ascending)
18241853
1825- -- 22. Clientes ordenados por data de modificação (ASC)
1854+ ``` sql
18261855SELECT id_cliente, nome, data_modificacao
18271856FROM Clientes
18281857ORDER BY data_modificacao ASC ;
1858+ ```
18291859
1830- -- 23. Produtos e stock atual, agrupados por tipo
1860+ 23 . Product current stock grouped by type
1861+
1862+ ``` sql
18311863SELECT tipo_de_produto, SUM (stock_atual) AS stock_total
18321864FROM Produtos
18331865GROUP BY tipo_de_produto;
1866+ ```
18341867
1835- -- 24. Pagamentos com moeda distinta (DISTINCT)
1868+ 24 . Distinct payment currencies
1869+
1870+ ``` sql
18361871SELECT DISTINCT moeda
18371872FROM Pagamentos;
1873+ ```
18381874
1839- -- 25. Funcionários que são “segurança” OU nasceram antes de 1985
1875+ 25 . Employees who are "segurança" OR born before 1985
1876+
1877+ ``` sql
18401878SELECT id_funcionario, nome, funcao, data_nascimento
18411879FROM Funcionarios
18421880WHERE funcao = ' segurança' OR (data_nascimento IS NOT NULL AND data_nascimento < ' 1985-01-01' );
1881+ ```
18431882
1844- -- 26. Produtos cujo preço de venda NÃO está entre 2 e 4 EUR
1883+ 26 . Products whose sale price is NOT between 2 and 4 EUR
1884+
1885+ ``` sql
18451886SELECT id_produto, designacao, preco_venda
18461887FROM Produtos
18471888WHERE NOT (preco_venda BETWEEN 2 AND 4 );
1889+ ```
1890+
1891+ 27 . Reviews with maximum rating (5) and visible
18481892
1849- -- 27. Avaliação dos clientes com nota máxima (5) e visíveis
1893+ ``` sql
18501894SELECT id_cliente, avaliacao, comentario
18511895FROM Avaliacao
18521896WHERE avaliacao = 5 AND visibilidade;
1897+ ```
1898+
1899+ 28 . Completed payments ordered by value, descending
18531900
1854- -- 28. Pagamentos concluidos ordenados por valor, desc.
1901+ ``` sql
18551902SELECT id_pagamento, valor, estado_pagamento
18561903FROM Pagamentos
18571904WHERE estado_pagamento = ' concluido'
18581905ORDER BY valor DESC ;
1906+ ```
1907+
1908+ 29 . Show number of participations in each event
18591909
1860- -- 29. Mostrar quantidade de participações em cada evento
1910+ ``` sql
18611911SELECT id_evento, COUNT (* ) AS total_participantes
18621912FROM Participacoes_Evento
18631913GROUP BY id_evento
18641914ORDER BY total_participantes DESC ;
1915+ ```
18651916
18661917-- 30. Listar produtos com designações diferentes e ordenar de Z-A
18671918SELECT DISTINCT designacao
18681919FROM Produtos
18691920ORDER BY designacao DESC;
18701921
1922+
18711923SELECT
18721924 id_produto,
18731925 designacao,
0 commit comments