1. Her bir müşterinin hangi kitabı aldığını listeleyin.
SELECT
[Link] AS MüşteriAdı,
[Link] AS KitapAdı
FROM
Müşteriler M
JOIN
Satışlar S ON M.MüşteriID = S.MüşteriID
JOIN
Kitaplar K ON [Link] = [Link];
2. Hiç satılmamış kitapları listeleyin.
SELECT
KitapAdi
FROM
Kitaplar
WHERE
KitapID NOT IN (SELECT KitapID FROM Satışlar);
3. Hangi yazarın hangi kitabı yazdığını listeleyin.
SELECT
[Link] AS YazarAdı,
[Link] AS KitapAdı
FROM
Yazarlar Y
JOIN
Kitaplar K ON [Link] = [Link];
4. Her müşterinin satın aldığı kitapların toplam maliyetini hesaplayın.
SELECT
[Link] AS MüşteriAdı,
SUM([Link]) AS ToplamMaliyet
FROM
Müşteriler M
JOIN
Satışlar S ON M.MüşteriID = S.MüşteriID
JOIN
Kitaplar K ON [Link] = [Link]
GROUP BY
M.MüşteriID, [Link];
5. Hiç kitap yazmamış yazarları listeleyin.
SELECT
[Link], [Link]
FROM
Yazarlar Y
WHERE
[Link] NOT IN (SELECT YazarID FROM Kitaplar);
6. Hangi kitapların kaç kere satıldığını listeleyin.
SELECT
[Link] AS KitapAdı,
COUNT([Link]) AS SatışSayısı
FROM
Kitaplar K
LEFT JOIN
Satışlar S ON [Link] = [Link]
GROUP BY
[Link], [Link];
7. Tüm kitapları ve satış tarihlerini listeleyin (satılmayanlar dahil).
SELECT
[Link],
[Link]ışTarihi
FROM
Kitaplar K
LEFT JOIN
Satışlar S ON [Link] = [Link];
8. Aynı müşterinin birden fazla satın aldığı kitapları listeleyin.
SELECT
[Link] AS MüşteriAdı,
GROUP_CONCAT([Link] SEPARATOR ', ') AS KitapAdları
FROM
Müşteriler M
JOIN
Satışlar S ON M.MüşteriID = S.MüşteriID
JOIN
Kitaplar K ON [Link] = [Link]
GROUP BY
M.MüşteriID, [Link]
HAVING
COUNT([Link]) > 1;
9. En son satılan kitabı ve alıcıyı listeleyin.
SELECT
[Link] AS KitapAdı,
[Link] AS MüşteriAdı
FROM
Satışlar S
JOIN
Kitaplar K ON [Link] = [Link]
JOIN
Müşteriler M ON S.MüşteriID = M.MüşteriID
ORDER BY
[Link]ışTarihi DESC
LIMIT 1;
10. En yüksek fiyata sahip kitabı ve yazarı listeleyin.
SELECT
[Link] AS KitapAdı,
[Link] AS YazarAdı
FROM
Kitaplar K
JOIN
Yazarlar Y ON [Link] = [Link]
ORDER BY
[Link] DESC
LIMIT 1;
11. Birden fazla kitabı olan yazarları listeleyin.
SELECT
[Link] AS YazarAdı
FROM
Yazarlar Y
JOIN
Kitaplar K ON [Link] = [Link]
GROUP BY
[Link], [Link]
HAVING
COUNT([Link]) > 1;