-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathquiz.sql
More file actions
91 lines (66 loc) · 2.86 KB
/
quiz.sql
File metadata and controls
91 lines (66 loc) · 2.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
USE VT_SARF_MAZLEME;
-- 1. SORU --
CREATE TABLE TEDARIKCI(
T_ID INT PRIMARY KEY,
AD VARCHAR(20),
VERGI_NO INT NOT NULL,
TEDARIK_EDILEN_URUN_KODU INT,
ADRES VARCHAR(20) DEFAULT 'KONYA'
);
-- 2. SORU --
ALTER TABLE MUSTERI ALTER COLUMN MUSTERI_NO INT NOT NULL;
ALTER TABLE MUSTERI ADD CONSTRAINT PK_MUS PRIMARY KEY(MUSTERI_NO);
ALTER TABLE SIPARIS ADD CONSTRAINT FK_MUS FOREIGN KEY (MUSTERI_KODU) REFERENCES MUSTERI(MUSTERI_NO) ON DELETE SET NULL;
-- 3. SORU --
ALTER TABLE URUN alter column U_ID INT not null
ALTER TABLE URUN ADD CONSTRAINT PK_Urun primary key (U_ID)
ALTER TABLE TEDARIKCI ADD CONSTRAINT FK_Urun foreign key (TEDARIK_EDILEN_URUN_KODU) references URUN (U_ID) on delete cascade
-- 4. SORU --
SELECT SUM(SIPARIS.MIKTAR*URUN.BIRIM_FIYAT) [TOPLAM]
FROM URUN
INNER JOIN SIPARIS ON URUN.U_ID=SIPARIS.URUN_KODU;
-- 5. SORU 1. YONTEM --
DECLARE @top INT;
SET @tOP =
(SELECT SUM(SIPARIS.MIKTAR*URUN.BIRIM_FIYAT)
FROM SIPARIS
INNER JOIN URUN ON SIPARIS.URUN_KODU=URUN.U_ID
INNER JOIN MUSTERI ON MUSTERI.MUSTERI_NO=SIPARIS.MUSTERI_KODU
GROUP BY MUSTERI.AD, MUSTERI.SOYAD HAVING MUSTERI.AD='AYSE' AND MUSTERI.SOYAD='Dagli')
SELECT MUSTERI.AD, MUSTERI.SOYAD, MUSTERI.TELEFON, @top [SIPARIS TOPLAM]
FROM MUSTERI WHERE MUSTERI.AD='AYSE' AND MUSTERI.SOYAD='Dagli';
-- 5. SORU 2. YONTEM --
DECLARE @toplam INT;
SET @toplam = (select sum(URUN.BIRIM_FIYAT * SIPARIS.MIKTAR) from SIPARIS inner join URUN on SIPARIS.URUN_KODU = URUN.U_ID where SIPARIS.MUSTERI_KODU in (select MUSTERI_NO from MUSTERI where AD = 'Ayşe' and SOYAD = 'Dağlı'))
select MUSTERI.AD, MUSTERI.SOYAD, MUSTERI.TELEFON, @toplam [siparis toplam]
from MUSTERI WHERE MUSTERI.AD='AYSE' AND MUSTERI.SOYAD='Dagli';
-- 6. SORU --
CREATE VIEW [SIPARIS_BILGILERI] AS SELECT MUSTERI.AD, MUSTERI.SOYAD, URUN.AD [urun ad], URUN.BIRIM_FIYAT, SIPARIS.MIKTAR, URUN.BIRIM_FIYAT*SIPARIS.MIKTAR [TUTAR]
FROM SIPARIS
INNER JOIN MUSTERI ON SIPARIS.MUSTERI_KODU=MUSTERI.MUSTERI_NO
INNER JOIN URUN ON SIPARIS.URUN_KODU=URUN.U_ID;
SELECT * FROM SIPARIS_BILGILERI;
-- 7. SORU --
SELECT SIPARIS.ODEME_TURU, SUM(SIPARIS.MIKTAR*URUN.BIRIM_FIYAT) [TOPLAM]
FROM SIPARIS
INNER JOIN URUN ON SIPARIS.URUN_KODU=URUN.U_ID
GROUP BY SIPARIS.ODEME_TURU;
-- 8. SORU --
CREATE VIEW [QUERY_CASE] AS SELECT MUSTERI.AD,
CASE SIPARIS.ODEME_TURU
WHEN 1 THEN SIPARIS.MIKTAR*URUN.BIRIM_FIYAT
ELSE NULL
END [PESIN],
CASE SIPARIS.ODEME_TURU
WHEN 2 THEN SIPARIS.MIKTAR*URUN.BIRIM_FIYAT
ELSE NULL
END [KREDI],
CASE SIPARIS.ODEME_TURU
WHEN 3 THEN SIPARIS.MIKTAR*URUN.BIRIM_FIYAT
ELSE NULL
END [CEK]
FROM SIPARIS
INNER JOIN MUSTERI ON SIPARIS.MUSTERI_KODU=MUSTERI.MUSTERI_NO
INNER JOIN URUN ON URUN.U_ID=SIPARIS.URUN_KODU;
SELECT QUERY_CASE.AD, SUM(QUERY_CASE.PESIN) [PESIN], SUM(QUERY_CASE.KREDI) [KREDI], SUM(QUERY_CASE.CEK) [CEK] FROM QUERY_CASE
GROUP BY QUERY_CASE.AD;