powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Заполнение данных
59 сообщений из 59, показаны все 3 страниц
Заполнение данных
    #40059368
CHAIIINIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При заполнении данных хранимами процедурами у меня появляется проблема. Процедуры все написаны правильно, но данные не заполняются. Что это может быть?
...
Рейтинг: 0 / 0
Заполнение данных
    #40059375
zby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CHAIIINIK,

рестартаните сервер, если проблема останется, обратитесь в службу поддержки майкрософт
...
Рейтинг: 0 / 0
Заполнение данных
    #40059376
CHAIIINIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zby,
как его рестарнуть?
...
Рейтинг: 0 / 0
Заполнение данных
    #40059377
zby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CHAIIINIK,

толсто
...
Рейтинг: 0 / 0
Заполнение данных
    #40059378
CHAIIINIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zby, я серьезно,просто перезайти?
...
Рейтинг: 0 / 0
Заполнение данных
    #40059379
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CHAIIINIK
zby, я серьезно,просто перезайти?
1 апреля вообще то 4 дня уже как.
...
Рейтинг: 0 / 0
Заполнение данных
    #40059381
zby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

это тролль 80 уровня, похоже
...
Рейтинг: 0 / 0
Заполнение данных
    #40059382
CHAIIINIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg,
я понимаю вы все тут такие умные, я только зарегистрировался на вашем сайте, ответьте пожалуйста какой алгоритм действий?
...
Рейтинг: 0 / 0
Заполнение данных
    #40059383
CHAIIINIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zby,
я понимаю вы все тут такие умные, я только зарегистрировался на вашем сайте, ответьте пожалуйста какой алгоритм действий?
...
Рейтинг: 0 / 0
Заполнение данных
    #40059385
zby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CHAIIINIK,

код процедур дайте, ну и скрипты создания таблиц хотя бы
...
Рейтинг: 0 / 0
Заполнение данных
    #40059387
CHAIIINIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
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.
create table Kinoteatr (
                        id_kinoteatr numeric(2) Identity primary key,
						kinoteatr_name varchar(20) not null,
						city varchar(20),
						region varchar(20)
					   );
create table Kassa     (
                        id_kassa numeric(4)  Identity primary key,
						kassa_name varchar(20) not null,
						id_kinoteatr numeric(2)
						constraint fk_id_kinoteatr foreign key(id_kinoteatr)
						references Kinoteatr(id_kinoteatr)
                       );
create table Chek      (
                        id_chek numeric(5)  Identity primary key,
						Skidka numeric(1) ,
						Data_chek datetime not null
                       );

create table Type_Ekrana ( 
                         id_type numeric(1)  Identity primary key,
						 Nazvanie_Ekrana varchar(20)					
                         );

create table Kinocompany (
                         id_kinocompany numeric(2)  Identity primary key,
						 Nazvanie_kinocompany varchar(20),
						 Strana varchar(20)
						 );

create table Films    (
                        id_films numeric(4)  Identity primary key,
						id_type numeric(1)
						constraint fk_id_type foreign key (id_type)
						references Type_Ekrana (id_type),
						id_kinocompany numeric(2)
						constraint fk_id_kinocompany foreign key (id_kinocompany)
						references Kinocompany(id_kinocompany),
						Nazvanie_films varchar(20)
                        );
create table Seans(
                         id_seans numeric(2)  Identity primary key,
						 Nazvanie_seansa varchar(20),
						 id_films numeric(4)
						constraint fk_id_films foreign key (id_films)
						references Films (id_films)
						 );
create table Prodaja_Bilets (
                        id_seans numeric(2)
					    constraint fk_id_seans foreign key (id_seans)
						references Seans(id_seans), 
						id_chek numeric(5)
						constraint fk_id_chek foreign key (id_chek)
						references Chek(id_chek),
						id_kassa numeric(4)
						constraint fk_id_kassa foreign key (id_kassa)
						references Kassa(id_kassa),
						price numeric(6),
						Kolichestvo numeric(2),
						mesto numeric(18) not null, 
						CONSTRAINT id_prodaja PRIMARY KEY CLUSTERED(id_seans ASC, id_kassa ASC, id_chek ASC)

						);

zby,
...
Рейтинг: 0 / 0
Заполнение данных
    #40059388
CHAIIINIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
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.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
CREATE PROC insert_TypeEkrana1 AS
DECLARE @nom INT
SET @nom=1
WHILE @nom<=7
BEGIN
 INSERT INTO Type_Ekrana (Nazvanie_Ekrana)
 VALUES ('Тип Экрана '+LTRIM(STR(@nom)))
 SET @nom=@nom+1
 END
 exec insert_TypeEkrana1;

 drop proc insert_TypeEkrana1
 select*from Type_Ekrana;


 CREATE PROC insert_kinoteatr1 AS
DECLARE @nom numeric(4)
SET @nom=1
WHILE @nom<=300
BEGIN

if @nom <=30
begin
INSERT INTO Kinoteatr(kinoteatr_name, city, region)
VALUES ('Кинотеатр '+LTRIM(STR(@nom)),'UFA', 2)
end
if @nom >30 and @nom<=60
begin
INSERT INTO Kinoteatr( kinoteatr_name, city, region)
VALUES ( 'Кинотеатр '+LTRIM(STR(@nom)),'Адыгея', 1)
end
if @nom >60 and @nom<=90
begin
INSERT INTO Kinoteatr( kinoteatr_name, city, region)
VALUES ( 'Кинотеатр '+LTRIM(STR(@nom)),'Бурятия', 3)
end
if @nom >90 and @nom<=120
begin
INSERT INTO Kinoteatr( kinoteatr_name, city, region)
VALUES ( 'Кинотеатр '+LTRIM(STR(@nom)),'Алтай', 4)
end
if @nom >120 and @nom<=150
begin
INSERT INTO Kinoteatr( kinoteatr_name, city, region)
VALUES ( 'Кинотеатр '+LTRIM(STR(@nom)),'Дагестан', 5)
end
if @nom >150 and @nom<=180
begin
INSERT INTO Kinoteatr( kinoteatr_name, city, region)
VALUES ( 'Кинотеатр '+LTRIM(STR(@nom)),'Ингушетия', 6)
end
if @nom >180 and @nom<=210
begin
INSERT INTO Kinoteatr( kinoteatr_name, city, region)
VALUES ( 'Кинотеатр '+LTRIM(STR(@nom)),'Кабардинка', 7)
end
if @nom >210 and @nom<=240
begin
INSERT INTO Kinoteatr( kinoteatr_name, city, region)
VALUES ( 'Кинотеатр '+LTRIM(STR(@nom)),'Калмыкия', 8)
end
if @nom >240 and @nom<=270
begin
INSERT INTO Kinoteatr( kinoteatr_name, city, region)
VALUES ( 'Кинотеатр '+LTRIM(STR(@nom)),'Черкессия', 9)
end
if @nom >270 and @nom<=300
begin
INSERT INTO Kinoteatr( kinoteatr_name, city, region)
VALUES ( 'Кинотеатр '+LTRIM(STR(@nom)),'Карелия', 10)
end
 SET @nom=@nom+1
 END
 exec insert_kinoteatr1
 select*from Kinoteatr

   INSERT INTO Kinoteatr(kinoteatr_name, city, region)
VALUES ('Кинотеатр', 1,1)
select*from Kinoteatr


CREATE PROC insert_kassa AS
DECLARE @nom numeric(4)
DECLARE @id_kinoteatr numeric(2)
SET @nom=1
WHILE @nom<=300
BEGIN
 INSERT INTO Kassa(kassa_name, id_kinoteatr)
 VALUES ('Касса'+LTRIM(STR(@nom)), @nom)
 SET @nom=@nom+1
 END
 exec insert_kassa
 drop proc insert_kassa
 select*from Kassa



  create proc insert_check1 as
 declare @nom numeric(5)
 set @nom = 1
 while @nom <=18001
 begin
 declare @x int
	declare @year int
	declare @month int
	declare @day int
	set @month = FLOOR(RAND()*(13-1)+1);
	if @month = 1 or @month = 3 or @month = 5 or @month = 7 or @month = 8 or @month = 10 or @month = 12
	set @day = FLOOR(RAND()*(32-1)+1);
	if @month = 2
	set @day = FLOOR(RAND()*(29-1)+1);
	if @month = 4 or @month = 6 or @month = 9 or @month = 11
	set @day = FLOOR(RAND()*(31-1)+1);
declare @date datetime
 if @nom<4000
 begin
 set @year = 2016
 set @date  = STR(@year)+'-'+STR(@day)+'-'+STR(@month)
 insert into Chek(Data_chek)values(@date)
 end
 if @nom>=4001 and @nom<=10000
 begin
 set @year = 2017
 set @date  = STR(@year)+'-'+STR(@day)+'-'+STR(@month)
 insert into Chek(Data_chek)values(@date)

 end
 if @nom>=10001
 begin
 set @year = 2018
 set @date  = STR(@year)+'-'+STR(@day)+'-'+STR(@month)
 insert into Chek(Data_chek)values(@date)

 end
 set @nom = @nom+1
 end

 exec insert_check1
 delete proc insert_check
 select*from Chek


 CREATE PROC insert_kinocompany AS
DECLARE @nom numeric(2)
SET @nom=1
WHILE @nom <= 10
BEGIN
INSERT INTO Kinocompany(Nazvanie_kinocompany, Strana)
VALUES ('Кинокомпания '+LTRIM(STR(@nom)),'Страна'+LTRIM(STR(@nom)))
SET @nom = @nom + 1
END
exec insert_kinocompany;
select*from Kinocompany;



CREATE PROC insert_films AS
DECLARE @nom numeric(4)
DECLARE @con numeric(1)
DECLARE @id_kinocompany numeric(2)
SET @nom = 1
WHILE @nom <= 140
BEGIN
SET @id_kinocompany = FLOOR(RAND()*(11-1)+1);
if @nom <=20
begin
INSERT INTO Films (id_kinocompany,id_type, Nazvanie_films)
VALUES (@id_kinocompany,1,'Фильм '+LTRIM(STR(@nom)))
end
if @nom >20 and @nom<=40
begin
INSERT INTO Films (id_kinocompany,id_type, Nazvanie_films)
VALUES (@id_kinocompany,2,'Фильм '+LTRIM(STR(@nom)))
end
if @nom >40 and @nom<=60
begin
INSERT INTO Films (id_kinocompany,id_type, Nazvanie_films)
VALUES (@id_kinocompany,3,'Фильм '+LTRIM(STR(@nom)))
end
if @nom >60 and @nom<=80
begin
INSERT INTO Films (id_kinocompany,id_type, Nazvanie_films)
VALUES (@id_kinocompany,4,'Фильм '+LTRIM(STR(@nom)))
end
if @nom >80 and @nom<=100
begin
INSERT INTO Films (id_kinocompany,id_type, Nazvanie_films)
VALUES (@id_kinocompany,5,'Фильм '+LTRIM(STR(@nom)))
end
if @nom >100 and @nom<=120
begin
INSERT INTO Films (id_kinocompany,id_type, Nazvanie_films)
VALUES (@id_kinocompany,6,'Фильм '+LTRIM(STR(@nom)))
end
if @nom >120 and @nom<=140
begin
INSERT INTO Films (id_kinocompany,id_type, Nazvanie_films)
VALUES (@id_kinocompany,7,'Фильм '+LTRIM(STR(@nom)))
end

SET @nom = @nom+1
END
exec insert_films;
select*from Films;


 
CREATE PROC insert_Seans AS
declare @nom numeric(4)
declare @id_films numeric (4)
SET @nom=1
WHILE @nom<=300
BEGIN
set @id_films = FLOOR(RAND()*(141-1)+1);
 INSERT INTO Seans (Nazvanie_seansa, id_films)
 VALUES ('Сеанс '+LTRIM(STR(@nom)), @id_films)
 SET @nom=@nom+1
 END
 exec insert_Seans;
 select*from Seans;


 CREATE PROC insert_prodaja AS
DECLARE cur1 CURSOR FOR SELECT id_chek FROM Chek
 DECLARE @id_chek NUMERIC(5)
 DECLARE @x int
 DECLARE @mesto int = 1
OPEN cur1
FETCH cur1 INTO @id_chek
WHILE @@FETCH_STATUS = 0
BEGIN
	if @mesto = 70
	set @mesto = 1
	declare @id_seans int
	set @id_seans = FLOOR(RAND()*(301-1)+1);
	declare @id_kassa int
	set @id_kassa = FLOOR(RAND()*(301-1)+1);
	set @x = FLOOR(RAND()*(101-1)+1);
	declare @kolvo int
	if(@x<=70)
	set @kolvo = 1
	if @x>70 and @x<=90
	set @kolvo = 2
	if @x>90
	set @kolvo = 3
	declare @price int = 199
	set @price = @price * @kolvo
	insert into Prodaja_Bilets(id_seans,id_chek,id_kassa,price,Kolichestvo,mesto)
	values(@id_seans,@id_chek,@id_kassa,@price,@kolvo, @mesto)
 FETCH cur1 INTO @id_chek
 set @mesto = @mesto+1
 END
 close cur1
 DEALLOCATE cur1
 exec insert_prodaja;
 select*from Prodaja_Bilets;


 create proc Skidka1 AS
DECLARE cur1 CURSOR FOR SELECT id_chek FROM Chek
 DECLARE @id_chek NUMERIC(5),
         @sumChek NUMERIC(5),
	     @coeff INT
OPEN cur1
FETCH cur1 INTO @id_chek
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @sumChek = price FROM Prodaja_Bilets where @id_chek = id_chek
 if @sumChek>=600 
 set @coeff = 5
 if @sumChek<600 and @sumChek>=400
 set @coeff = 3
 if @sumChek<400 and @sumChek>=200
 set @coeff = 1
 UPDATE Chek SET Skidka = @coeff WHERE @id_chek= id_chek
 UPDATE Prodaja_Bilets SET price=price*(100.0-@coeff)/100.0
 WHERE @id_chek=id_chek
 FETCH cur1 INTO @id_chek
 END
 CLOSE cur1
 DEALLOCATE cur1


 exec Skidka1

zby,
...
Рейтинг: 0 / 0
Заполнение данных
    #40059389
MoonRabbit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
данные просто не заполняются или ошибку какую-то выдает?
...
Рейтинг: 0 / 0
Заполнение данных
    #40059390
CHAIIINIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MoonRabbit,
не заполняются, ошибок нету
...
Рейтинг: 0 / 0
Заполнение данных
    #40059392
zby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CHAIIINIK,

Код: sql
1.
2.
3.
4.
create  table Type_Ekrana ( 
                         id_type int Identity(1,1) primary key,
						 Nazvanie_Ekrana varchar(20)					
                         );



И вот так во всех таблицах
...
Рейтинг: 0 / 0
Заполнение данных
    #40059394
MoonRabbit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zby
CHAIIINIK,

Код: sql
1.
2.
3.
4.
create  table Type_Ekrana ( 
                         id_type int Identity(1,1) primary key,
						 Nazvanie_Ekrana varchar(20)					
                         );



И вот так во всех таблицах


убрать только и
...
Рейтинг: 0 / 0
Заполнение данных
    #40059395
MoonRabbit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MoonRabbit
zby
CHAIIINIK,

Код: sql
1.
2.
3.
4.
create  table Type_Ekrana ( 
                         id_type int Identity(1,1) primary key,
						 Nazvanie_Ekrana varchar(20)					
                         );



И вот так во всех таблицах


убрать только и

блин
убрать
Код: sql
1.



и
Код: sql
1.

...
Рейтинг: 0 / 0
Заполнение данных
    #40059396
zby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MoonRabbit,

Не совсем понял, что вы имеете в виду
...
Рейтинг: 0 / 0
Заполнение данных
    #40059397
zby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MoonRabbit,

Ааа, понятно )
...
Рейтинг: 0 / 0
Заполнение данных
    #40059398
CHAIIINIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MoonRabbit,
немного не понял со всеми таблицами, покажите пожалуйста как будет выглядеть в таблице одной?
...
Рейтинг: 0 / 0
Заполнение данных
    #40059399
zby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CHAIIINIK,

тип данных поменяйте
Код: sql
1.
int Identity(1,1) primary key
...
Рейтинг: 0 / 0
Заполнение данных
    #40059400
CHAIIINIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MoonRabbit,
а получается две цифры где тип данных прописывать?
...
Рейтинг: 0 / 0
Заполнение данных
    #40059401
CHAIIINIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zby,

везде что ли int?
...
Рейтинг: 0 / 0
Заполнение данных
    #40059402
zby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CHAIIINIK,

да
...
Рейтинг: 0 / 0
Заполнение данных
    #40059404
CHAIIINIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zby, после int также нужно две цифры прописывать?
...
Рейтинг: 0 / 0
Заполнение данных
    #40059406
zby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CHAIIINIK,

не обязательно, но я всегда пишу для наглядности

И еще Valid data types for an identity column are any data types of the integer data type category, except for the bit data type, or decimal data type
...
Рейтинг: 0 / 0
Заполнение данных
    #40059407
MoonRabbit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CHAIIINIK
zby, после int также нужно две цифры прописывать?

после Identity

int - тип данных
Identity (1, 1) - его свойство, где первая цифра - значение с чего начинается отсчет, вторая цифра - шаг для следующей цифры
...
Рейтинг: 0 / 0
Заполнение данных
    #40059408
CHAIIINIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MoonRabbit,
аааа, а смотрите мне менять получается только где ключ айдентити остальные значения оставить также или изменить на инт?
...
Рейтинг: 0 / 0
Заполнение данных
    #40059409
CHAIIINIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MoonRabbit,
напишите пожалуйста как будет выглядеть таблица кинотеатр и продажа билетов, чтобы понять до конца
...
Рейтинг: 0 / 0
Заполнение данных
    #40059411
MoonRabbit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CHAIIINIK
MoonRabbit,
аааа, а смотрите мне менять получается только где ключ айдентити остальные значения оставить также или изменить на инт?

везде поменяйте, хуже точно не будет
...
Рейтинг: 0 / 0
Заполнение данных
    #40059414
CHAIIINIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MoonRabbit,
все сделал, проблема не ушла, данные не заполняются((
...
Рейтинг: 0 / 0
Заполнение данных
    #40059416
zby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CHAIIINIK,

Вот так работает?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
create table Type_Ekrana ( 
                         id_type int Identity(1,1) primary key,
						 Nazvanie_Ekrana nvarchar(20)
						 
go

CREATE PROC insert_TypeEkrana1 AS
DECLARE @nom INT
SET @nom=1
WHILE @nom<=7
BEGIN
 INSERT INTO Type_Ekrana (Nazvanie_Ekrana)
 VALUES (N'Тип Экрана '+ cast(@nom as nvarchar(1)))
 SET @nom=@nom+1
 END
...
Рейтинг: 0 / 0
Заполнение данных
    #40059417
CHAIIINIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zby,
нет(((
...
Рейтинг: 0 / 0
Заполнение данных
    #40059418
zby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CHAIIINIK,

Странно, у меня работает.

Просто инсерт 1 строки без процедуры проходит?
...
Рейтинг: 0 / 0
Заполнение данных
    #40059419
godsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что значит "не работает"?
чем запускаете скрипт?
таблицы создались?
...
Рейтинг: 0 / 0
Заполнение данных
    #40059420
godsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zby,

У вас не может работать, т.к. пропущена скобка перед go :)
д.б. так
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
create table Type_Ekrana ( 
                         id_type int Identity(1,1) primary key,
						 Nazvanie_Ekrana nvarchar(20)
				 )  ----!!!!
						 
go

CREATE PROC insert_TypeEkrana1 AS
DECLARE @nom INT
SET @nom=1
WHILE @nom<=7
BEGIN
 INSERT INTO Type_Ekrana (Nazvanie_Ekrana)
 VALUES (N'Тип Экрана '+ cast(@nom as nvarchar(1)))
 SET @nom=@nom+1
 END
 go 
 exec insert_TypeEkrana1
...
Рейтинг: 0 / 0
Заполнение данных
    #40059421
MoonRabbit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CHAIIINIK
zby,
нет(((


у вас в коде заполнения данных полный бардак, если честно
создание процедур, выполнение, удаление, выборка из таблиц
где-то drop proc, где-то delete proc...
хотя бы оформляйте код с GO

авторGO информирует программы SQL Server об окончании пакета инструкций Transact-SQL.
...
Рейтинг: 0 / 0
Заполнение данных
    #40059422
zby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
godsql,

Точно, блин, скобка потерялась ))
...
Рейтинг: 0 / 0
Заполнение данных
    #40059423
CHAIIINIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
godsql,
ахахаха скобка тут ни причем все работает, когда чекаешь таблицу ниче не заполняется хотя процедуры работают
...
Рейтинг: 0 / 0
Заполнение данных
    #40059424
CHAIIINIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MoonRabbit,

работает все, но заполнение не показывает проверьте и скиньте скрин!
...
Рейтинг: 0 / 0
Заполнение данных
    #40059425
godsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вставьте перед каждым "exec" "go", как в моем примере
...
Рейтинг: 0 / 0
Заполнение данных
    #40059428
godsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И вообще, лучше бы вам идти учиться.
Код: sql
1.
2.
create table Kinoteatr (
                        id_kinoteatr numeric(2) Identity primary key, --!!! 



Код: sql
1.
2.
3.
4.
CREATE PROC insert_kinoteatr1 AS
DECLARE @nom numeric(4) --!!!!
SET @nom=1
WHILE @nom<=300 ---!!!! 
...
Рейтинг: 0 / 0
Заполнение данных
    #40059429
MoonRabbit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну даже не знаю, возможно как-то так сработает

Код: sql
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.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
/*
 drop proc insert_TypeEkrana1
 drop proc insert_kinoteatr1
 drop proc insert_kassa
 drop proc insert_check1
 drop proc insert_kinocompany
 drop proc insert_films
 drop proc insert_Seans
 drop proc insert_prodaja
 drop proc Skidka1

-- delete from Type_Ekrana
*/

CREATE PROC insert_TypeEkrana1 AS
	DECLARE @nom INT
	SET @nom=1
	WHILE @nom<=7
	BEGIN
	 INSERT INTO Type_Ekrana (Nazvanie_Ekrana)
	 VALUES ('Тип Экрана '+LTRIM(STR(@nom)))
	 SET @nom=@nom+1
	 END
GO

CREATE PROC insert_kinoteatr1 AS
	DECLARE @nom numeric(4)
	SET @nom=1
	WHILE @nom<=300
	BEGIN

	if @nom <=30
	begin
	INSERT INTO Kinoteatr(kinoteatr_name, city, region)
	VALUES ('Кинотеатр '+LTRIM(STR(@nom)),'UFA', 2)
	end
	if @nom >30 and @nom<=60
	begin
	INSERT INTO Kinoteatr( kinoteatr_name, city, region)
	VALUES ( 'Кинотеатр '+LTRIM(STR(@nom)),'Адыгея', 1)
	end
	if @nom >60 and @nom<=90
	begin
	INSERT INTO Kinoteatr( kinoteatr_name, city, region)
	VALUES ( 'Кинотеатр '+LTRIM(STR(@nom)),'Бурятия', 3)
	end
	if @nom >90 and @nom<=120
	begin
	INSERT INTO Kinoteatr( kinoteatr_name, city, region)
	VALUES ( 'Кинотеатр '+LTRIM(STR(@nom)),'Алтай', 4)
	end
	if @nom >120 and @nom<=150
	begin
	INSERT INTO Kinoteatr( kinoteatr_name, city, region)
	VALUES ( 'Кинотеатр '+LTRIM(STR(@nom)),'Дагестан', 5)
	end
	if @nom >150 and @nom<=180
	begin
	INSERT INTO Kinoteatr( kinoteatr_name, city, region)
	VALUES ( 'Кинотеатр '+LTRIM(STR(@nom)),'Ингушетия', 6)
	end
	if @nom >180 and @nom<=210
	begin
	INSERT INTO Kinoteatr( kinoteatr_name, city, region)
	VALUES ( 'Кинотеатр '+LTRIM(STR(@nom)),'Кабардинка', 7)
	end
	if @nom >210 and @nom<=240
	begin
	INSERT INTO Kinoteatr( kinoteatr_name, city, region)
	VALUES ( 'Кинотеатр '+LTRIM(STR(@nom)),'Калмыкия', 8)
	end
	if @nom >240 and @nom<=270
	begin
	INSERT INTO Kinoteatr( kinoteatr_name, city, region)
	VALUES ( 'Кинотеатр '+LTRIM(STR(@nom)),'Черкессия', 9)
	end
	if @nom >270 and @nom<=300
	begin
	INSERT INTO Kinoteatr( kinoteatr_name, city, region)
	VALUES ( 'Кинотеатр '+LTRIM(STR(@nom)),'Карелия', 10)
	end
	 SET @nom=@nom+1
	 END
GO
/*
INSERT INTO Kinoteatr(kinoteatr_name, city, region)
VALUES ('Кинотеатр', 1,1)
select*from Kinoteatr
*/

CREATE PROC insert_kassa AS
	DECLARE @nom numeric(4)
	DECLARE @id_kinoteatr numeric(2)
	SET @nom=1
	WHILE @nom<=300
	BEGIN
	 INSERT INTO Kassa(kassa_name, id_kinoteatr)
	 VALUES ('Касса'+LTRIM(STR(@nom)), @nom)
	 SET @nom=@nom+1
	 END
GO

create proc insert_check1 as
	 declare @nom numeric(5)
	 set @nom = 1
	 while @nom <=18001
	 begin
	 declare @x int
		declare @year int
		declare @month int
		declare @day int
		set @month = FLOOR(RAND()*(13-1)+1);
		if @month = 1 or @month = 3 or @month = 5 or @month = 7 or @month = 8 or @month = 10 or @month = 12
		set @day = FLOOR(RAND()*(32-1)+1);
		if @month = 2
		set @day = FLOOR(RAND()*(29-1)+1);
		if @month = 4 or @month = 6 or @month = 9 or @month = 11
		set @day = FLOOR(RAND()*(31-1)+1);
	declare @date datetime
	 if @nom<4000
	 begin
	 set @year = 2016
	 set @date  = STR(@year)+'-'+STR(@day)+'-'+STR(@month)
	 insert into Chek(Data_chek)values(@date)
	 end
	 if @nom>=4001 and @nom<=10000
	 begin
	 set @year = 2017
	 set @date  = STR(@year)+'-'+STR(@day)+'-'+STR(@month)
	 insert into Chek(Data_chek)values(@date)

	 end
	 if @nom>=10001
	 begin
	 set @year = 2018
	 set @date  = STR(@year)+'-'+STR(@day)+'-'+STR(@month)
	 insert into Chek(Data_chek)values(@date)

	 end
	 set @nom = @nom+1
	 end
GO

CREATE PROC insert_kinocompany AS
	DECLARE @nom numeric(2)
	SET @nom=1
	WHILE @nom <= 10
	BEGIN
	INSERT INTO Kinocompany(Nazvanie_kinocompany, Strana)
	VALUES ('Кинокомпания '+LTRIM(STR(@nom)),'Страна'+LTRIM(STR(@nom)))
	SET @nom = @nom + 1
	END
GO

CREATE PROC insert_films AS
	DECLARE @nom numeric(4)
	DECLARE @con numeric(1)
	DECLARE @id_kinocompany numeric(2)
	SET @nom = 1
	WHILE @nom <= 140
	BEGIN
	SET @id_kinocompany = FLOOR(RAND()*(11-1)+1);
	if @nom <=20
	begin
	INSERT INTO Films (id_kinocompany,id_type, Nazvanie_films)
	VALUES (@id_kinocompany,1,'Фильм '+LTRIM(STR(@nom)))
	end
	if @nom >20 and @nom<=40
	begin
	INSERT INTO Films (id_kinocompany,id_type, Nazvanie_films)
	VALUES (@id_kinocompany,2,'Фильм '+LTRIM(STR(@nom)))
	end
	if @nom >40 and @nom<=60
	begin
	INSERT INTO Films (id_kinocompany,id_type, Nazvanie_films)
	VALUES (@id_kinocompany,3,'Фильм '+LTRIM(STR(@nom)))
	end
	if @nom >60 and @nom<=80
	begin
	INSERT INTO Films (id_kinocompany,id_type, Nazvanie_films)
	VALUES (@id_kinocompany,4,'Фильм '+LTRIM(STR(@nom)))
	end
	if @nom >80 and @nom<=100
	begin
	INSERT INTO Films (id_kinocompany,id_type, Nazvanie_films)
	VALUES (@id_kinocompany,5,'Фильм '+LTRIM(STR(@nom)))
	end
	if @nom >100 and @nom<=120
	begin
	INSERT INTO Films (id_kinocompany,id_type, Nazvanie_films)
	VALUES (@id_kinocompany,6,'Фильм '+LTRIM(STR(@nom)))
	end
	if @nom >120 and @nom<=140
	begin
	INSERT INTO Films (id_kinocompany,id_type, Nazvanie_films)
	VALUES (@id_kinocompany,7,'Фильм '+LTRIM(STR(@nom)))
	end

	SET @nom = @nom+1
	END
GO

CREATE PROC insert_Seans AS
	declare @nom numeric(4)
	declare @id_films numeric (4)
	SET @nom=1
	WHILE @nom<=300
	BEGIN
	set @id_films = FLOOR(RAND()*(141-1)+1);
	 INSERT INTO Seans (Nazvanie_seansa, id_films)
	 VALUES ('Сеанс '+LTRIM(STR(@nom)), @id_films)
	 SET @nom=@nom+1
	 END
GO

CREATE PROC insert_prodaja AS
	DECLARE cur1 CURSOR FOR SELECT id_chek FROM Chek
	 DECLARE @id_chek NUMERIC(5)
	 DECLARE @x int
	 DECLARE @mesto int = 1
	OPEN cur1
	FETCH cur1 INTO @id_chek
	WHILE @@FETCH_STATUS = 0
	BEGIN
		if @mesto = 70
		set @mesto = 1
		declare @id_seans int
		set @id_seans = FLOOR(RAND()*(301-1)+1);
		declare @id_kassa int
		set @id_kassa = FLOOR(RAND()*(301-1)+1);
		set @x = FLOOR(RAND()*(101-1)+1);
		declare @kolvo int
		if(@x<=70)
		set @kolvo = 1
		if @x>70 and @x<=90
		set @kolvo = 2
		if @x>90
		set @kolvo = 3
		declare @price int = 199
		set @price = @price * @kolvo
		insert into Prodaja_Bilets(id_seans,id_chek,id_kassa,price,Kolichestvo,mesto)
		values(@id_seans,@id_chek,@id_kassa,@price,@kolvo, @mesto)
	 FETCH cur1 INTO @id_chek
	 set @mesto = @mesto+1
	 END
	 close cur1
	 DEALLOCATE cur1
GO

create proc Skidka1 AS
	DECLARE cur1 CURSOR FOR SELECT id_chek FROM Chek
	 DECLARE @id_chek NUMERIC(5),
			 @sumChek NUMERIC(5),
			 @coeff INT
	OPEN cur1
	FETCH cur1 INTO @id_chek
	WHILE @@FETCH_STATUS = 0
	BEGIN
	SELECT @sumChek = price FROM Prodaja_Bilets where @id_chek = id_chek
	 if @sumChek>=600 
	 set @coeff = 5
	 if @sumChek<600 and @sumChek>=400
	 set @coeff = 3
	 if @sumChek<400 and @sumChek>=200
	 set @coeff = 1
	 UPDATE Chek SET Skidka = @coeff WHERE @id_chek= id_chek
	 UPDATE Prodaja_Bilets SET price=price*(100.0-@coeff)/100.0
	 WHERE @id_chek=id_chek
	 FETCH cur1 INTO @id_chek
	 END
	 CLOSE cur1
	 DEALLOCATE cur1
GO




 exec insert_TypeEkrana1;
 GO
	select * from Type_Ekrana
	GO
 exec insert_kinoteatr1;
 GO
	select * from Kinoteatr
	GO
 exec insert_kassa;
 GO
	select * from Kassa
	GO
  exec insert_check1;
 GO
	select * from Chek
	GO
 exec insert_kinocompany;
 GO
	select * from Kinocompany
	GO
 exec insert_films;
 GO
 	select * from Films
	GO
 exec insert_Seans;
 GO
	select * from Seans
	GO
 exec insert_prodaja;
 GO
	select * from Prodaja_Bilets
	GO

-- exec Skidka1;
-- GO


 
--select * from films

...
Рейтинг: 0 / 0
Заполнение данных
    #40059431
CHAIIINIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
godsql,
так я и учусь)))
...
Рейтинг: 0 / 0
Заполнение данных
    #40059432
CHAIIINIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
godsql,
что там не так?
...
Рейтинг: 0 / 0
Заполнение данных
    #40059433
godsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CHAIIINIK
godsql,
так я и учусь)))

гуманитарий?
...
Рейтинг: 0 / 0
Заполнение данных
    #40059434
CHAIIINIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
godsql,
Ошибка арифметического переполнения при преобразовании IDENTITY к типу данных numeric из-за вашего go))))
...
Рейтинг: 0 / 0
Заполнение данных
    #40059435
CHAIIINIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
godsql,
не гуманитарий, вы же тоже учились тоже ошибались, лучше помогли а не умничали так много)))
пока все что вы написали тут не помогло в решении моего вопроса
...
Рейтинг: 0 / 0
Заполнение данных
    #40059436
MoonRabbit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CHAIIINIK
godsql,
Ошибка арифметического переполнения при преобразовании IDENTITY к типу данных numeric из-за вашего go))))


таблицы
Код: sql
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.
/*
drop table Prodaja_Bilets
drop table  Kassa

drop table Chek
drop table Seans
drop table  Films
drop table Kinocompany
drop table Type_Ekrana
drop table Kinoteatr
*/
create table Kinoteatr (
id_kinoteatr int Identity(1,1) primary key,
kinoteatr_name varchar(20) not null,
city varchar(20),
region varchar(20)
);


create table Kassa     (
                        id_kassa int Identity(1,1) primary key,
						kassa_name varchar(20) not null,
						id_kinoteatr int
						constraint fk_id_kinoteatr foreign key(id_kinoteatr)
						references Kinoteatr(id_kinoteatr)
                       );
create table Chek      (
                        id_chek int Identity(1,1) primary key,
						Skidka numeric(1) ,
						Data_chek datetime not null
                       );

create table Type_Ekrana ( 
                         id_type int Identity(1,1) primary key,
						 Nazvanie_Ekrana varchar(20)					
                         );

create table Kinocompany (
                         id_kinocompany int Identity(1,1) primary key,
						 Nazvanie_kinocompany varchar(20),
						 Strana varchar(20)
						 );

create table Films    (
                        id_films int Identity(1,1) primary key,
						id_type int
						constraint fk_id_type foreign key (id_type)
						references Type_Ekrana (id_type),
						id_kinocompany int
						constraint fk_id_kinocompany foreign key (id_kinocompany)
						references Kinocompany(id_kinocompany),
						Nazvanie_films varchar(20)
                        );
create table Seans(
                         id_seans int Identity(1,1) primary key,
						 Nazvanie_seansa varchar(20),
						 id_films int
						constraint fk_id_films foreign key (id_films)
						references Films (id_films)
						 );
create table Prodaja_Bilets (
                        id_seans int
					    constraint fk_id_seans foreign key (id_seans)
						references Seans(id_seans), 
						id_chek int
						constraint fk_id_chek foreign key (id_chek)
						references Chek(id_chek),
						id_kassa int
						constraint fk_id_kassa foreign key (id_kassa)
						references Kassa(id_kassa),
						price numeric(6),
						Kolichestvo numeric(2),
						mesto int not null, 
						CONSTRAINT id_prodaja PRIMARY KEY CLUSTERED(id_seans ASC, id_kassa ASC, id_chek ASC)

						);



процедурки

Код: sql
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.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
/*
 drop proc insert_TypeEkrana1
 drop proc insert_kinoteatr1
 drop proc insert_kassa
 drop proc insert_check1
 drop proc insert_kinocompany
 drop proc insert_films
 drop proc insert_Seans
 drop proc insert_prodaja
 drop proc Skidka1

-- delete from Type_Ekrana
*/

CREATE PROC insert_TypeEkrana1 AS
	DECLARE @nom INT
	SET @nom=1
	WHILE @nom<=7
	BEGIN
	 INSERT INTO Type_Ekrana (Nazvanie_Ekrana)
	 VALUES ('Тип Экрана '+LTRIM(STR(@nom)))
	 SET @nom=@nom+1
	 END
GO

CREATE PROC insert_kinoteatr1 AS
	DECLARE @nom numeric(4)
	SET @nom=1
	WHILE @nom<=300
	BEGIN

	if @nom <=30
	begin
	INSERT INTO Kinoteatr(kinoteatr_name, city, region)
	VALUES ('Кинотеатр '+LTRIM(STR(@nom)),'UFA', 2)
	end
	if @nom >30 and @nom<=60
	begin
	INSERT INTO Kinoteatr( kinoteatr_name, city, region)
	VALUES ( 'Кинотеатр '+LTRIM(STR(@nom)),'Адыгея', 1)
	end
	if @nom >60 and @nom<=90
	begin
	INSERT INTO Kinoteatr( kinoteatr_name, city, region)
	VALUES ( 'Кинотеатр '+LTRIM(STR(@nom)),'Бурятия', 3)
	end
	if @nom >90 and @nom<=120
	begin
	INSERT INTO Kinoteatr( kinoteatr_name, city, region)
	VALUES ( 'Кинотеатр '+LTRIM(STR(@nom)),'Алтай', 4)
	end
	if @nom >120 and @nom<=150
	begin
	INSERT INTO Kinoteatr( kinoteatr_name, city, region)
	VALUES ( 'Кинотеатр '+LTRIM(STR(@nom)),'Дагестан', 5)
	end
	if @nom >150 and @nom<=180
	begin
	INSERT INTO Kinoteatr( kinoteatr_name, city, region)
	VALUES ( 'Кинотеатр '+LTRIM(STR(@nom)),'Ингушетия', 6)
	end
	if @nom >180 and @nom<=210
	begin
	INSERT INTO Kinoteatr( kinoteatr_name, city, region)
	VALUES ( 'Кинотеатр '+LTRIM(STR(@nom)),'Кабардинка', 7)
	end
	if @nom >210 and @nom<=240
	begin
	INSERT INTO Kinoteatr( kinoteatr_name, city, region)
	VALUES ( 'Кинотеатр '+LTRIM(STR(@nom)),'Калмыкия', 8)
	end
	if @nom >240 and @nom<=270
	begin
	INSERT INTO Kinoteatr( kinoteatr_name, city, region)
	VALUES ( 'Кинотеатр '+LTRIM(STR(@nom)),'Черкессия', 9)
	end
	if @nom >270 and @nom<=300
	begin
	INSERT INTO Kinoteatr( kinoteatr_name, city, region)
	VALUES ( 'Кинотеатр '+LTRIM(STR(@nom)),'Карелия', 10)
	end
	 SET @nom=@nom+1
	 END
GO
/*
INSERT INTO Kinoteatr(kinoteatr_name, city, region)
VALUES ('Кинотеатр', 1,1)
select*from Kinoteatr
*/

CREATE PROC insert_kassa AS
	DECLARE @nom numeric(4)
	DECLARE @id_kinoteatr numeric(2)
	SET @nom=1
	WHILE @nom<=300
	BEGIN
	 INSERT INTO Kassa(kassa_name, id_kinoteatr)
	 VALUES ('Касса'+LTRIM(STR(@nom)), @nom)
	 SET @nom=@nom+1
	 END
GO

create proc insert_check1 as
	 declare @nom numeric(5)
	 set @nom = 1
	 while @nom <=18001
	 begin
	 declare @x int
		declare @year int
		declare @month int
		declare @day int
		set @month = FLOOR(RAND()*(13-1)+1);
		if @month = 1 or @month = 3 or @month = 5 or @month = 7 or @month = 8 or @month = 10 or @month = 12
		set @day = FLOOR(RAND()*(32-1)+1);
		if @month = 2
		set @day = FLOOR(RAND()*(29-1)+1);
		if @month = 4 or @month = 6 or @month = 9 or @month = 11
		set @day = FLOOR(RAND()*(31-1)+1);
	declare @date datetime
	 if @nom<4000
	 begin
	 set @year = 2016
	 set @date  = STR(@year)+'-'+STR(@day)+'-'+STR(@month)
	 insert into Chek(Data_chek)values(@date)
	 end
	 if @nom>=4001 and @nom<=10000
	 begin
	 set @year = 2017
	 set @date  = STR(@year)+'-'+STR(@day)+'-'+STR(@month)
	 insert into Chek(Data_chek)values(@date)

	 end
	 if @nom>=10001
	 begin
	 set @year = 2018
	 set @date  = STR(@year)+'-'+STR(@day)+'-'+STR(@month)
	 insert into Chek(Data_chek)values(@date)

	 end
	 set @nom = @nom+1
	 end
GO

CREATE PROC insert_kinocompany AS
	DECLARE @nom numeric(2)
	SET @nom=1
	WHILE @nom <= 10
	BEGIN
	INSERT INTO Kinocompany(Nazvanie_kinocompany, Strana)
	VALUES ('Кинокомпания '+LTRIM(STR(@nom)),'Страна'+LTRIM(STR(@nom)))
	SET @nom = @nom + 1
	END
GO

CREATE PROC insert_films AS
	DECLARE @nom numeric(4)
	DECLARE @con numeric(1)
	DECLARE @id_kinocompany numeric(2)
	SET @nom = 1
	WHILE @nom <= 140
	BEGIN
	SET @id_kinocompany = FLOOR(RAND()*(11-1)+1);
	if @nom <=20
	begin
	INSERT INTO Films (id_kinocompany,id_type, Nazvanie_films)
	VALUES (@id_kinocompany,1,'Фильм '+LTRIM(STR(@nom)))
	end
	if @nom >20 and @nom<=40
	begin
	INSERT INTO Films (id_kinocompany,id_type, Nazvanie_films)
	VALUES (@id_kinocompany,2,'Фильм '+LTRIM(STR(@nom)))
	end
	if @nom >40 and @nom<=60
	begin
	INSERT INTO Films (id_kinocompany,id_type, Nazvanie_films)
	VALUES (@id_kinocompany,3,'Фильм '+LTRIM(STR(@nom)))
	end
	if @nom >60 and @nom<=80
	begin
	INSERT INTO Films (id_kinocompany,id_type, Nazvanie_films)
	VALUES (@id_kinocompany,4,'Фильм '+LTRIM(STR(@nom)))
	end
	if @nom >80 and @nom<=100
	begin
	INSERT INTO Films (id_kinocompany,id_type, Nazvanie_films)
	VALUES (@id_kinocompany,5,'Фильм '+LTRIM(STR(@nom)))
	end
	if @nom >100 and @nom<=120
	begin
	INSERT INTO Films (id_kinocompany,id_type, Nazvanie_films)
	VALUES (@id_kinocompany,6,'Фильм '+LTRIM(STR(@nom)))
	end
	if @nom >120 and @nom<=140
	begin
	INSERT INTO Films (id_kinocompany,id_type, Nazvanie_films)
	VALUES (@id_kinocompany,7,'Фильм '+LTRIM(STR(@nom)))
	end

	SET @nom = @nom+1
	END
GO

CREATE PROC insert_Seans AS
	declare @nom numeric(4)
	declare @id_films numeric (4)
	SET @nom=1
	WHILE @nom<=300
	BEGIN
	set @id_films = FLOOR(RAND()*(141-1)+1);
	 INSERT INTO Seans (Nazvanie_seansa, id_films)
	 VALUES ('Сеанс '+LTRIM(STR(@nom)), @id_films)
	 SET @nom=@nom+1
	 END
GO

CREATE PROC insert_prodaja AS
	DECLARE cur1 CURSOR FOR SELECT id_chek FROM Chek
	 DECLARE @id_chek NUMERIC(5)
	 DECLARE @x int
	 DECLARE @mesto int = 1
	OPEN cur1
	FETCH cur1 INTO @id_chek
	WHILE @@FETCH_STATUS = 0
	BEGIN
		if @mesto = 70
		set @mesto = 1
		declare @id_seans int
		set @id_seans = FLOOR(RAND()*(301-1)+1);
		declare @id_kassa int
		set @id_kassa = FLOOR(RAND()*(301-1)+1);
		set @x = FLOOR(RAND()*(101-1)+1);
		declare @kolvo int
		if(@x<=70)
		set @kolvo = 1
		if @x>70 and @x<=90
		set @kolvo = 2
		if @x>90
		set @kolvo = 3
		declare @price int = 199
		set @price = @price * @kolvo
		insert into Prodaja_Bilets(id_seans,id_chek,id_kassa,price,Kolichestvo,mesto)
		values(@id_seans,@id_chek,@id_kassa,@price,@kolvo, @mesto)
	 FETCH cur1 INTO @id_chek
	 set @mesto = @mesto+1
	 END
	 close cur1
	 DEALLOCATE cur1
GO

create proc Skidka1 AS
	DECLARE cur1 CURSOR FOR SELECT id_chek FROM Chek
	 DECLARE @id_chek NUMERIC(5),
			 @sumChek NUMERIC(5),
			 @coeff INT
	OPEN cur1
	FETCH cur1 INTO @id_chek
	WHILE @@FETCH_STATUS = 0
	BEGIN
	SELECT @sumChek = price FROM Prodaja_Bilets where @id_chek = id_chek
	 if @sumChek>=600 
	 set @coeff = 5
	 if @sumChek<600 and @sumChek>=400
	 set @coeff = 3
	 if @sumChek<400 and @sumChek>=200
	 set @coeff = 1
	 UPDATE Chek SET Skidka = @coeff WHERE @id_chek= id_chek
	 UPDATE Prodaja_Bilets SET price=price*(100.0-@coeff)/100.0
	 WHERE @id_chek=id_chek
	 FETCH cur1 INTO @id_chek
	 END
	 CLOSE cur1
	 DEALLOCATE cur1
GO




 exec insert_TypeEkrana1;
 GO
	select * from Type_Ekrana
	GO
 exec insert_kinoteatr1;
 GO
	select * from Kinoteatr
	GO
 exec insert_kassa;
 GO
	select * from Kassa
	GO
  exec insert_check1;
 GO
	select * from Chek
	GO
 exec insert_kinocompany;
 GO
	select * from Kinocompany
	GO
 exec insert_films;
 GO
 	select * from Films
	GO
 exec insert_Seans;
 GO
	select * from Seans
	GO
 exec insert_prodaja;
 GO
	select * from Prodaja_Bilets
	GO

-- exec Skidka1;
-- GO


 
--select * from filmsм

...
Рейтинг: 0 / 0
Заполнение данных
    #40059437
godsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CHAIIINIK
godsql,
не гуманитарий, вы же тоже учились тоже ошибались, лучше помогли а не умничали так много)))
пока все что вы написали тут не помогло в решении моего вопроса


пока вы не поймете, чем "2" отличается от "4" и сколько цифр в числе "300", вам лучше не связываться с такими сложными скриптами
...
Рейтинг: 0 / 0
Заполнение данных
    #40059438
CHAIIINIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
godsql, хорошо, а не подскажите где можно подробно изучить все? может книга есть для новичков или курс
...
Рейтинг: 0 / 0
Заполнение данных
    #40059441
godsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://sql-tutorial.ru/content.html

А вообще, google "sql для начинающих"
...
Рейтинг: 0 / 0
Заполнение данных
    #40059442
MoonRabbit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CHAIIINIK
godsql, хорошо, а не подскажите где можно подробно изучить все? может книга есть для новичков или курс


https://docs.microsoft.com/ru-ru/sql/t-sql/lesson-1-creating-database-objects?view=sql-server-ver15
...
Рейтинг: 0 / 0
Заполнение данных
    #40059446
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на вашем уровне вам стоит начать с понимания с чем вы столкнулись и что это все делает.
Начните с видеокурсов на ютубе, что бы общая картина сложилась. Потом вы сможете задавать конкретные вопросы.

На данный момент у вас есть батон хлеба, вы пытаетесь сделать бутерброд, который ели однажды, но не знаете что такое нож и как им пользоваться. Советы про выбор заточки или произволителя ножа на данном этапе не помогут.
...
Рейтинг: 0 / 0
Заполнение данных
    #40059448
CHAIIINIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
godsql,
спасибо большое вам, не хватало go и все четко стало , но все таки одна проблема появилась курсор скидка работает некорректно, что делать? в некоторых местах NULL
...
Рейтинг: 0 / 0
Заполнение данных
    #40059450
godsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CHAIIINIK
godsql,
спасибо большое вам, не хватало go и все четко стало , но все таки одна проблема появилась курсор скидка работает некорректно, что делать? в некоторых местах NULL

хз, но по логике не хватает

if @sumChek<200
set @coeff = ???
...
Рейтинг: 0 / 0
Заполнение данных
    #40059527
CHAIIINIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
godsql, по логике все норм, до 200 скидки нету
...
Рейтинг: 0 / 0
Заполнение данных
    #40059576
godsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CHAIIINIK
godsql, по логике все норм, до 200 скидки нету

у вас @coeff не инициализируется в цикле WHILE
Т.о. если @sumChek<200 или @sumChek is null , в первых итерациях UPDATE будут идти с @coeff = null, пока не появится сумма чека >= 200

Кроме того, если @sumChek<200, то берется @coeff от предыдущего чека
...
Рейтинг: 0 / 0
Заполнение данных
    #40059593
CHAIIINIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
godsql,
а можете пожалуйста написать как правильно будет
...
Рейтинг: 0 / 0
59 сообщений из 59, показаны все 3 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Заполнение данных
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]