Nelze přidat záznam do tabulky – MS SQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Nelze přidat záznam do tabulky – MS SQL – Fórum – Programujte.comNelze přidat záznam do tabulky – MS SQL – Fórum – Programujte.com

 

SQL newbie
~ Anonymní uživatel
5 příspěvků
30. 4. 2013   #1
-
0
-

Dobrý den,

při pokračování v projektu jsem narazil na chybu, když jsem se snažil jakýkoliv záznam z tabulky smazat nebo přidat tak program hlásí chybu s klíči. Mohl by mi prosím někdo uvést příklad, jak tohle obejít? Jedná se o ukol č. 8 9 10 níže
 

Create database Projekt_test

Use Projekt_test

Create table Zbozi(
ZboziID int identity primary key  not null,
Nazev varchar(30) not null,
DruhZboziID int not null,
ObchodID int not null,
Mnozstvi_ks_nebo_dkg decimal not null,
)

Create table Obchody(
ObchodID int identity primary key not null,
Nazev_obchodu varchar(15) not null,
Otevreno_OD time(0) not null,
Otevreno_DO time(0) not null,
Vzdalenost_v_km int not null,
)

Insert into Zbozi(Nazev,DruhZboziID,ObchodID,Mnozstvi_ks_nebo_dkg)values
('Rajče',1,1,10),
('Okurek',2,2,8),
('Paprika',3,1,3),
('Rohlíky',4,1,15),
('Jablka',5,2,0),
('Chléb',6,1,1),
('Housky',7,2,10),
('Vejce',8,3,20),
('Jahody',9,3,2),
('Šunka',10,4,0),
('Krkovička',11,3,20),
('Klobásy',12,4,4),
('Pomeranče',13,1,0),
('Limonáda',14,2,0),
('Sirup',15,1,2),
('Nanuk',16,3,4),
('Polárkový dort',17,3,2),
('Jogurt',18,1,5),
('Banány',19,4,6),
('Deodorant',20,4,2),
('Antiperspirant',21,2,3),
('Make-up',22,3,0),
('Parfém',23,1,1),
('Toaletní papír',24,3,5),
('Sprej proti hmyzu',25,2,1),
('Čistič prachu',26,1,0),
('Krém na ruce',27,3,2),
('Voda po holení',28,1,2),
('Holící strojek',29,2,0)

Insert into Obchody(Nazev_obchodu,Otevreno_OD,Otevreno_DO,Vzdalenost_v_km)values
('Kaufland','08:00','17:00','13'),
('Lidl','07:00','20:00','30'),
('Tesco','05:00','23:00','20'),
('Penny-Market','09:00','21:00','9')

Create table Slevy(
SlevyID int identity primary key not null,
ObchodID int not null,
Nazev_slevy varchar(15) not null,
Velikost_v_procentech int,
Plati_OD date,
Plati_DO date
)
Insert into Slevy(ObchodID,Nazev_slevy,Velikost_v_procentech,Plati_OD,Plati_DO)values
(1,'Pečivo',10,'1.1.2013','2.1.2013'),
(3,'Ostatní',15,'6.23.2014','8.2.2014'),
(2,'Ovoce',5,'9.28.2013','5.26.2013'),
(4,'Ovoce',10,'2.24.2013','5.9.2014'),
(3,'Maso',25,'5.25.2014','5.3.2015'),
(2,'Zelenina',5,'9.20.2013','10.20.2013'),
(1,'Zelenina',30,'5.20.2013','6.20.2013'),
(4,'Maso',15,'7.9.2013','8.15.2013'),
(3,'Ovoce',20,'7.6.2013','8.8.2013'),
(2,'Pečivo',10,'1.1.2013','2.1.2013'),
(1,'Ovoce',35,'6.6.2013','7.6.2013'),
(4,'Maso',50,'6.1.2013','8.1.2013'),
(1,'Puma',10,'1.1.2013','2.1.2013'),
(3,'Vichy',15,'6.23.2014','8.2.2014'),
(2,'Bez slev',null,null,null),
(4,'Bez slev',null,null,null),
(3,'Indulona',25,'5.25.2014','5.3.2015'),
(2,'Gillete',5,'9.20.2013','10.20.2013'),
(1,'Pronto',30,'5.20.2013','6.20.2013'),
(4,'Bez slev',null,null,null),
(3,'Toalex',20,'7.6.2013','8.8.2013'),
(2,'Wilkinson',10,'1.1.2013','2.1.2013'),
(1,'Bez slev',null,null,null),
(4,'Bez slev',null,null,null)

Create table DruhZbozi(
DruhZboziID int primary key identity not null,
SlevyID int not null,
ZboziID int not null,
Druh_nebo_znacka varchar(15) not null,
)
insert into DruhZbozi(ZboziID,SlevyID,Druh_nebo_znacka) values
(1,6,'Zelenina'),
(2,7,'Zelenina'),
(3,15,'Zelenina'),
(4,1,'Pečivo'),
(5,3,'Ovoce'),
(6,10,'Pečivo'),
(7,16,'Pečivo'),
(8,2,'Ostatní'),
(9,4,'Ovoce'),
(10,5,'Maso'),
(11,8,'Maso'),
(12,12,'Maso'),
(13,11,'Ovoce'),
(14,23,'Pití'),
(15,24,'Pití'),
(16,15,'Ostatní'),
(17,23,'Ostatní'),
(18,16,'Ostatní'),
(19,4,'Ovoce'),
(20,24,'Nivea'),
(21,23,'Axe'),
(22,14,'Vichy'),
(23,13,'Puma'),
(24,21,'Toalex'),
(25,16,'Zmizex'),
(26,19,'Pronto'),
(27,17,'Indulona'),
(28,18,'Gillete'),
(29,22,'Wilkinson')

--1 Chci vypsat velikost slevy a druh slevněného zboží
select Druh_nebo_znacka,Velikost_v_procentech from DruhZbozi left join Slevy on DruhZbozi.SlevyID=Slevy.SlevyID where Slevy.Nazev_slevy='Pečivo'
--2 Chci vypsat zboží, které slevněné není a jeho název 
select Druh_nebo_znacka, Velikost_v_procentech from DruhZbozi left join Slevy on DruhZbozi.SlevyID=Slevy.SlevyID where Slevy.Velikost_v_procentech is null
--3 Chci vypsat druh a název zboží
select Nazev,Druh_nebo_znacka from DruhZbozi left join Zbozi on Zbozi.ZboziID=DruhZbozi.ZboziID
--4 Chci vypsat název a druh nebo značku produktu, podle velikosti slevy v procentech, kterou si určím sám
select Nazev,Druh_nebo_znacka,Velikost_v_procentech from DruhZbozi
 left join Zbozi on Zbozi.ZboziID=DruhZbozi.ZboziID
 left join Slevy on Slevy.SlevyID=DruhZbozi.SlevyID where velikost_v_procentech in
 (select velikost_v_procentech from slevy where velikost_v_procentech > 10) order by velikost_v_procentech desc
--5 Chci vypsat obchody, ve kterých probíhá od určitého období sleva
select Obchody.Nazev_obchodu,Velikost_v_procentech,Plati_OD from Slevy
 left join Obchody on Slevy.ObchodID=Obchody.ObchodID where Plati_OD>'2013-01-01'
--6 Chci vypsat zásoby, kterých je nejvíc
select Nazev,Mnozstvi_ks_nebo_dkg from Zbozi where Mnozstvi_ks_nebo_dkg 
in (select MAX(Mnozstvi_ks_nebo_dkg) from Zbozi)
--7 Chci udelat nákupní lístek a proto potřebuju vypsat, které zásoby potřebuju nakoupit a které nepotřebuju
select Nazev, Potreba_koupit=
Case
when Mnozstvi_ks_nebo_dkg=0 then 'Je potřeba nakoupit'
when Mnozstvi_ks_nebo_dkg>0 then 'Není potřeba nakoupit'
else '???'
end
from zbozi
Order by Potreba_koupit
--8 Chci přidat nový druh zboží(Pěna do koupele)
insert into DruhZbozi(SlevyID,ZboziID,Druh_nebo_znacka) values
(30,1,'Pěna do koupele')
--9 Chci smazat pěnu do koupele, protože se již nepoužívá
delete from Zbozi where Nazev='Pěna do koupele'
--10 Chci přidat uplně novou slevu
insert into Slevy(ObchodID,Nazev_slevy,Velikost_v_procentech,Plati_OD,Plati_DO) values
(2,'Mentolky',20,'2013-06-03','2013-07-03')
--11 Chci upravit slevu u obchodu lidl pro pití o velikosti 15% od 9.6.2014 do 6.7.2014
update Slevy
set
ObchodID=2,
Nazev_slevy='Pití',
Velikost_v_procentech='15',
Plati_OD='2014-06-09',
Plati_DO='2014-07-06'
where SlevyID=24
Nahlásit jako SPAM
IP: 77.48.206.–
SQL newbie
~ Anonymní uživatel
5 příspěvků
30. 4. 2013   #2
-
0
-

Došel jsem na to odkazoval jsem se na něco co neexistuje už je to OK  

Nahlásit jako SPAM
IP: 77.48.206.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 2 hosté

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý