Шустрый

Профиль
Группа: Участник
Сообщений: 58
Регистрация: 12.6.2008
Репутация: нет Всего: нет
|
Таблицы: Код | # SQL Manager 2005 for MySQL 3.7.7.1 # --------------------------------------- # Host : localhost # Port : 3306 # Database : istok_db
SET FOREIGN_KEY_CHECKS=0;
CREATE DATABASE `istok_db`;
USE `istok_db`;
# # Structure for the `garages` table : #
CREATE TABLE `garages` ( `id` int(10) NOT NULL auto_increment, `number` int(3) NOT NULL default '0', `street_id` int(3) NOT NULL default '0', `g_type` char(2) default 'K', `nach_pokaz_meter` int(11) default '0', `date_vvoda_exp_meter` date default NULL, `gos_num_meter` char(20) default NULL, `insert_date` date default NULL, `update_date` date default NULL, `insert_time` time default NULL, `update_time` time default NULL, `deleted` char(1) default NULL, PRIMARY KEY (`id`), UNIQUE KEY `street` (`street_id`,`number`) ) TYPE=MyISAM;
# # Structure for the `garages_type` table : #
CREATE TABLE `garages_type` ( `type` char(2) NOT NULL default '', `Description` char(100) NOT NULL default '', PRIMARY KEY (`type`), UNIQUE KEY `type` (`type`) ) TYPE=MyISAM;
# # Structure for the `street` table : #
CREATE TABLE `street` ( `id_street` int(3) NOT NULL default '0', `street_rom` char(5) NOT NULL default '', PRIMARY KEY (`id_street`), UNIQUE KEY `id_street` (`id_street`) ) TYPE=MyISAM;
# # Structure for the `owners` table : #
CREATE TABLE `owners` ( `id` int(10) NOT NULL auto_increment, `family` varchar(30) NOT NULL default '', `last_name` varchar(15) NOT NULL default '', `surname` varchar(20) NOT NULL default '', `adress` varchar(50) NOT NULL default '', `mobile_phone` varchar(13) default NULL, `home_phone` varchar(13) default NULL, `insert_data` date default NULL, `insert_time` time default NULL, `update_data` date default NULL, `update_time` time default NULL, `deleted` char(1) default NULL, PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`) ) TYPE=MyISAM;
# # Structure for the `opl_parking_due` table : #
CREATE TABLE `opl_parking_due` ( `id` int(10) NOT NULL auto_increment, `id_garage` int(10) NOT NULL default '0', `id_owner` int(10) NOT NULL default '0', `opl_to` date NOT NULL default '0000-00-00', `opl_date` date NOT NULL default '0000-00-00', `summ_opl` double(4,2) NOT NULL default '0.00', `insert_date` date default NULL, `insert_time` time default NULL, `update_date` date default NULL, `update_time` time default NULL, PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`,`id_garage`,`id_owner`) ) TYPE=MyISAM;
# # Structure for the `history_owners` table : #
CREATE TABLE `history_owners` ( `counter` int(22) NOT NULL auto_increment, `id_garage` int(10) NOT NULL default '0', `id_owner` int(10) NOT NULL default '0', `own_from` date NOT NULL default '0000-00-00', `own_to` date NOT NULL default '0000-00-00', `arendator` int(1) default '0', `insert_date` date default NULL, `update_date` date default NULL, `insert_time` time default NULL, `update_time` time default NULL, `deleted` char(1) default NULL, PRIMARY KEY (`counter`), UNIQUE KEY `counter` (`id_garage`,`id_owner`,`arendator`) ) TYPE=MyISAM;
# # Data for the `garages` table (LIMIT 0,500) #
INSERT INTO `garages` (`id`, `number`, `street_id`, `g_type`, `nach_pokaz_meter`, `date_vvoda_exp_meter`, `gos_num_meter`, `insert_date`, `update_date`, `insert_time`, `update_time`, `deleted`) VALUES (1,1,1,'K',0,'1901-01-01','',NULL,NULL,NULL,NULL,NULL), (2,2,2,'K',0,'1900-12-30','',NULL,NULL,NULL,NULL,NULL), (3,3,3,'K',0,'1900-12-30','',NULL,NULL,NULL,NULL,NULL), (4,4,4,'M',345483757,'2009-02-13','dfjg34875',NULL,NULL,NULL,NULL,NULL), (13,5,5,'K',0,'2009-02-21','HJD459',NULL,NULL,NULL,NULL,NULL), (18,6,6,'K',38578348,'1900-12-30','rty74385',NULL,NULL,NULL,NULL,NULL), (21,7,7,'K',0,'1900-12-30','',NULL,NULL,NULL,NULL,NULL), (22,1,2,'M',0,'1900-12-30','',NULL,NULL,NULL,NULL,NULL), (23,22,1,'K',NULL,'1900-12-30',NULL,NULL,'2009-02-28',NULL,'18:33:07','X'), (24,23,2,'K',NULL,'1900-12-30',NULL,NULL,NULL,NULL,NULL,NULL), (26,76,3,'SM',NULL,'1900-12-30',NULL,NULL,NULL,NULL,NULL,NULL), (27,99,3,'SM',0,'1900-12-30','',NULL,NULL,NULL,NULL,NULL), (28,77,2,'K',NULL,'1900-12-30',NULL,NULL,NULL,NULL,NULL,NULL), (29,23,1,'K',NULL,'1900-12-30',NULL,NULL,NULL,NULL,NULL,NULL), (30,24,1,'SM',0,'1900-12-30','',NULL,NULL,NULL,NULL,NULL), (31,25,1,'SM',NULL,'1900-12-30',NULL,NULL,NULL,NULL,NULL,NULL), (32,26,1,'SM',NULL,'1900-12-30',NULL,NULL,NULL,NULL,NULL,NULL), (33,27,1,'SM',NULL,'1900-12-30',NULL,NULL,NULL,NULL,NULL,NULL), (34,28,1,'SM',NULL,'1900-12-30',NULL,NULL,NULL,NULL,NULL,NULL), (35,29,1,'M',0,'1900-12-30','',NULL,NULL,NULL,NULL,NULL), (36,30,1,'K',0,'1900-12-30','',NULL,NULL,NULL,NULL,NULL), (37,31,1,'K',NULL,'1900-12-30',NULL,NULL,NULL,NULL,NULL,NULL), (38,32,1,'SM',NULL,'1900-12-30',NULL,NULL,NULL,NULL,NULL,NULL), (39,33,1,'SM',NULL,'1900-12-30',NULL,NULL,NULL,NULL,NULL,NULL), (40,34,1,'SM',NULL,'1900-12-30',NULL,NULL,NULL,NULL,NULL,NULL), (41,35,1,'SM',NULL,'1900-12-30',NULL,NULL,NULL,NULL,NULL,NULL), (42,36,1,'SM',NULL,'1900-12-30',NULL,NULL,NULL,NULL,NULL,NULL), (43,37,1,'SM',NULL,'1900-12-30',NULL,NULL,NULL,NULL,NULL,NULL), (44,38,1,'SM',NULL,'1900-12-30',NULL,NULL,NULL,NULL,NULL,NULL), (45,39,1,'SM',NULL,'1900-12-30',NULL,NULL,NULL,NULL,NULL,NULL), (46,40,1,'K',NULL,'1900-12-30',NULL,NULL,NULL,NULL,NULL,NULL), (47,41,1,'M',NULL,'1900-12-30',NULL,NULL,NULL,NULL,NULL,NULL), (48,3,2,'K',NULL,'1900-12-30',NULL,NULL,NULL,NULL,NULL,NULL), (49,4,2,'SM',2222,'1991-12-30','1111',NULL,NULL,NULL,NULL,NULL), (50,22,13,'K',0,NULL,'',NULL,NULL,NULL,NULL,NULL), (51,98,3,'K',0,NULL,'',NULL,NULL,NULL,NULL,NULL), (52,100,3,'K',0,NULL,'',NULL,NULL,NULL,NULL,NULL), (53,101,3,'K',0,NULL,'',NULL,NULL,NULL,NULL,NULL), (54,102,3,'K',0,NULL,'',NULL,NULL,NULL,NULL,NULL), (55,103,1,'K',0,'1901-01-01','',NULL,NULL,NULL,NULL,NULL), (56,104,1,'K',0,NULL,'',NULL,NULL,NULL,NULL,NULL), (57,105,1,'K',0,NULL,'',NULL,NULL,NULL,NULL,NULL), (58,99,9,'K',0,NULL,NULL,'2009-02-21',NULL,'13:32:27',NULL,NULL), (59,106,1,'K',0,NULL,'','2009-02-21',NULL,'14:18:55',NULL,NULL), (60,107,1,'K',0,NULL,'','2009-02-21',NULL,'14:24:05',NULL,NULL), (61,144,2,'K',0,NULL,'','2009-02-27',NULL,'13:59:18',NULL,NULL), (62,145,2,'K',0,NULL,'','2009-02-27',NULL,'14:00:24',NULL,NULL), (63,146,2,'K',0,NULL,'','2009-02-27',NULL,'14:01:46',NULL,NULL), (64,147,2,'K',0,NULL,'','2009-02-27',NULL,'14:12:00',NULL,NULL), (65,148,2,'K',0,NULL,'','2009-02-27',NULL,'14:15:47',NULL,NULL), (66,159,2,'K',0,NULL,'','2009-02-27',NULL,'14:18:49',NULL,NULL), (67,149,2,'K',0,NULL,'','2009-02-27',NULL,'14:24:51',NULL,NULL), (68,150,2,'K',458752,NULL,'','2009-02-28',NULL,'13:49:40',NULL,NULL), (69,151,1,'K',0,NULL,'','2009-02-28',NULL,'13:53:35',NULL,NULL), (70,151,2,'K',0,NULL,'','2009-02-28',NULL,'13:56:03',NULL,NULL);
COMMIT;
# # Data for the `garages_type` table (LIMIT 0,500) #
INSERT INTO `garages_type` (`type`, `Description`) VALUES ('K','Каменный'), ('M','Металический'), ('SM','Сборно-металический');
COMMIT;
# # Data for the `history_owners` table (LIMIT 0,500) #
INSERT INTO `history_owners` (`counter`, `id_garage`, `id_owner`, `own_from`, `own_to`, `arendator`, `insert_date`, `update_date`, `insert_time`, `update_time`, `deleted`) VALUES (29,18,9,'2008-10-08','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (2,1,2,'1990-02-10','1998-02-09',NULL,NULL,NULL,NULL,NULL,NULL), (3,28,2,'2009-01-18','2030-01-31',NULL,NULL,NULL,NULL,NULL,NULL), (4,29,4,'2009-01-18','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (5,31,6,'2009-01-18','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (6,32,3,'2009-01-18','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (7,33,5,'2009-01-18','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (8,34,2,'2009-01-18','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (42,40,20,'2009-02-20','9999-12-31',1,NULL,NULL,NULL,NULL,NULL), (10,37,1,'1999-01-23','2009-01-23',NULL,NULL,NULL,NULL,NULL,NULL), (11,39,4,'2009-01-18','9999-12-31',0,NULL,NULL,NULL,NULL,NULL), (45,38,4,'2009-02-20','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (13,41,4,'2009-01-19','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (14,42,1,'2009-01-19','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (15,43,5,'2009-01-19','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (16,44,5,'2009-01-19','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (17,45,5,'2009-01-19','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (18,47,3,'2009-01-24','9999-12-01',NULL,NULL,NULL,NULL,NULL,NULL), (20,37,2,'2009-01-01','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (21,48,8,'2009-02-09','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (22,49,11,'1990-02-10','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (23,1,16,'1998-02-10','1998-02-09',NULL,NULL,NULL,NULL,NULL,NULL), (24,1,13,'1998-02-10','1993-02-12',NULL,NULL,NULL,NULL,NULL,NULL), (25,1,10,'1993-02-13','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (26,13,13,'2009-02-13','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (27,29,15,'2009-02-13','2009-02-12',1,NULL,NULL,NULL,NULL,NULL), (28,29,10,'2009-02-13','9999-12-31',1,NULL,NULL,NULL,NULL,NULL), (30,27,17,'2009-02-19','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (31,22,18,'2009-02-19','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (32,2,19,'2009-02-19','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (43,46,23,'2009-02-20','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (34,36,7,'2009-02-20','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (44,40,11,'2009-02-20','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (46,30,4,'2009-02-20','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (37,50,20,'2009-02-20','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (38,23,21,'2009-02-20','9999-12-31',NULL,NULL,'2009-02-28',NULL,'18:33:12','X'), (39,51,22,'2009-02-20','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (40,52,23,'2009-02-20','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (47,35,6,'2009-02-20','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (48,24,16,'2009-02-20','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (49,3,14,'2009-02-20','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (50,26,5,'2009-02-20','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (51,4,21,'2009-02-20','9999-12-31',NULL,NULL,NULL,NULL,NULL,NULL), (52,53,19,'2009-02-20','9999-12-31',0,NULL,NULL,NULL,NULL,NULL), (53,54,12,'2009-02-20','9999-12-31',0,NULL,NULL,NULL,NULL,NULL), (54,55,22,'2009-02-20','9999-12-31',0,NULL,NULL,NULL,NULL,NULL), (55,56,17,'2009-02-20','9999-12-31',0,NULL,NULL,NULL,NULL,NULL), (56,57,4,'2009-02-20','9999-12-31',0,NULL,NULL,NULL,NULL,NULL), (57,59,24,'2008-10-02','9999-12-31',0,'2009-02-21',NULL,'14:19:40',NULL,NULL), (58,60,25,'2009-02-21','9999-12-31',0,'2009-02-21',NULL,'14:24:08',NULL,NULL), (59,65,17,'2009-02-27','9999-12-31',0,'2009-02-27',NULL,'14:15:49',NULL,NULL), (60,66,1,'2009-01-28','9999-12-31',0,'2009-02-27',NULL,'14:18:50',NULL,NULL), (61,67,8,'2009-02-27','9999-12-31',0,'2009-02-27',NULL,'14:24:52',NULL,NULL), (62,68,25,'2009-02-03','9999-12-31',0,'2009-02-28',NULL,'13:49:42',NULL,NULL), (63,69,6,'2007-12-13','9999-12-31',0,'2009-02-28',NULL,'13:53:36',NULL,NULL), (64,70,6,'2008-03-11','9999-12-31',0,'2009-02-28',NULL,'13:56:07',NULL,NULL);
COMMIT;
# # Data for the `opl_parking_due` table (LIMIT 0,500) #
INSERT INTO `opl_parking_due` (`id`, `id_garage`, `id_owner`, `opl_to`, `opl_date`, `summ_opl`, `insert_date`, `insert_time`, `update_date`, `update_time`) VALUES (1,59,24,'2008-10-02','2009-02-21',0,'2009-02-21','14:23:00',NULL,NULL), (2,60,25,'2008-02-21','2007-02-21',0,'2009-02-21','14:24:10',NULL,NULL), (3,60,25,'2009-02-28','2008-02-28',456,NULL,NULL,NULL,NULL), (4,60,25,'2009-01-27','2008-01-27',234,NULL,NULL,NULL,NULL), (5,1,10,'2008-03-12','2008-03-12',145,'2009-02-24','13:01:54',NULL,NULL), (6,1,10,'2009-10-27','2008-10-29',256,'2009-02-24','13:04:17',NULL,NULL), (7,1,10,'2009-02-24','2009-02-24',300,'2009-02-24','13:06:03',NULL,NULL), (8,23,21,'2008-01-01','2008-01-01',0,NULL,NULL,NULL,NULL), (9,23,21,'2008-09-30','2009-02-24',227,'2009-02-24','16:20:07',NULL,NULL), (11,65,17,'2009-02-27','2009-02-27',0,'2009-02-27','14:15:53',NULL,NULL), (12,66,1,'2009-01-28','2009-02-27',0,'2009-02-27','14:18:51',NULL,NULL), (13,67,8,'2009-02-27','2009-02-27',0,'2009-02-27','14:24:53',NULL,NULL), (14,68,25,'2009-02-03','2009-02-28',0,'2009-02-28','13:49:43',NULL,NULL), (15,69,6,'2007-12-13','2009-02-28',0,'2009-02-28','13:53:38',NULL,NULL), (16,70,6,'2008-03-11','2009-02-28',0,'2009-02-28','13:56:14',NULL,NULL);
COMMIT;
# # Data for the `owners` table (LIMIT 0,500) #
INSERT INTO `owners` (`id`, `family`, `last_name`, `surname`, `adress`, `mobile_phone`, `home_phone`, `insert_data`, `insert_time`, `update_data`, `update_time`, `deleted`) VALUES (1,'Иванов','Иван','Иванович','г.Южный, Химиков 1, кв. 23','+380978574251','+380482572457',NULL,NULL,NULL,NULL,NULL), (2,'Смирнов','Василий','Васильевич','г.Южный, Строитей 3, кв.15','','',NULL,NULL,NULL,NULL,NULL), (3,'Сидоров','Владимер','Александрович','г.Южный, Ново Билярская 30, кв.123','+380974528421','',NULL,NULL,NULL,NULL,NULL), (4,'Смирнов','Вассиан','Васильевич','г.Южный, Строитей 3, кв.78','','',NULL,NULL,NULL,NULL,NULL), (5,'Иванов','Артем','Иванович','г.Южный, Приморская 4, кв.33','','',NULL,NULL,NULL,NULL,NULL), (6,'Татарчук','Татар','Татарович','г.Южный',NULL,NULL,NULL,NULL,NULL,NULL,NULL), (7,'Оноприенко','Степан','Семёнович','г. Южныйул. Химиков д.30 кв, 2','80974526851','3-89-12',NULL,NULL,NULL,NULL,NULL), (8,'Закаревский','Вадим','Петрович','г. Южныйул. Химиков. д.33, кв.3','80667854213','9-55-87',NULL,NULL,NULL,NULL,NULL), (9,'Тымченко','Инна','Степановна','г.Одессаул. Канатная д.55 кв.100','','789-56-23',NULL,NULL,NULL,NULL,NULL), (10,'Филипенко','Тимур','Александрович',' с. Сычавкаул. Героев Сталинграда д.78','','9-89-54',NULL,NULL,NULL,NULL,NULL), (11,'Титуренко','Юлия','Петровна','г.Одесса','','',NULL,NULL,NULL,NULL,NULL), (12,'Михальчан','Дмитрий','Перфилиевич','Одесская обл.с. Сычавка','','',NULL,NULL,NULL,NULL,NULL), (13,'Верещагин','Александр','Романович','Одесская обл. с. Визирка','','',NULL,NULL,NULL,NULL,NULL), (14,'Перфорев','Пётр','Петрович','Одесская обл. с. Новые Беляры','','',NULL,NULL,NULL,NULL,NULL), (15,'Митюков','Варламий','Гаврилович','Одесская обл. с. Новые Беляры','','',NULL,NULL,NULL,NULL,NULL), (16,'Парфеменко-сидоров','Пётр','Иванович','Одесская обл., г.Одесса,','','',NULL,NULL,NULL,NULL,NULL), (17,'Коротков','Виктор','Олександрович','г.Южный','','',NULL,NULL,NULL,NULL,NULL), (18,'Павук','Анатолий','Павлович','',NULL,NULL,NULL,NULL,NULL,NULL,NULL), (19,'Мусиенко','Кирил','Леонидович','',NULL,NULL,NULL,NULL,NULL,NULL,NULL), (20,'Панайот','Стапан','Степанович','г.Николаев',NULL,NULL,NULL,NULL,NULL,NULL,NULL), (21,'Кабаев','Филимон','Петрович','',NULL,NULL,NULL,NULL,NULL,NULL,NULL), (22,'Мунтяну','Валентин','Валентинович','',NULL,NULL,NULL,NULL,NULL,NULL,NULL), (23,'Резниченко','Олександр','Васильевич','',NULL,NULL,NULL,NULL,NULL,NULL,NULL), (24,'Варчук','Алексей','Петрович','',NULL,NULL,NULL,NULL,NULL,NULL,NULL), (25,'Малинов','Петр','Симонович','',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
COMMIT;
# # Data for the `street` table (LIMIT 0,500) #
INSERT INTO `street` (`id_street`, `street_rom`) VALUES (1,'I'), (2,'II'), (3,'III'), (4,'IV'), (5,'V'), (6,'VI'), (7,'VII'), (8,'VIII'), (9,'IX'), (10,'Ю'), (11,'З'), (12,'С'), (13,'В');
COMMIT;
|
Мой запрос: Код | SELECT garages.id, garages.g_type, garages_type.Description, garages.number, garages.street_id, street.street_rom, history_owners.counter, history_owners.own_from, history_owners.own_to, owners.id, owners.family, owners.last_name, owners.surname, owners.adress, owners.mobile_phone, owners.home_phone, garages.nach_pokaz_meter, garages.date_vvoda_exp_meter, garages.gos_num_meter, history_owners.arendator, MAX(opl_parking_due.opl_to) AS opl_to FROM garages LEFT JOIN garages_type ON (garages.g_type = garages_type.`type`) LEFT JOIN street ON (garages.street_id = street.id_street) LEFT JOIN history_owners ON (garages.id = history_owners.id_garage) LEFT JOIN owners ON (history_owners.id_owner = owners.id) LEFT JOIN opl_parking_due ON (garages.id = opl_parking_due.id_garage) AND (owners.id = opl_parking_due.id_owner) WHERE garages.deleted <> 'X' AND history_owners.deleted <> 'X' AND owners.deleted <> 'X' AND (history_owners.own_from <= CURDATE() AND history_owners.own_to >= CURDATE()) OR (history_owners.own_from IS NULL AND history_owners.own_to IS NULL) GROUP BY garages.id, history_owners.arendator ORDER BY garages.street_id, garages.number
|
Суть предполагается такая: выбрать все гаражи (garages) на которые есть владельцы (owners) или арендаторы history_owners.arendator = 1, связаны они историей владения (history_owners) по дате владения "с"- own_from и "по" own_to если текущая дата попадает в период владения. Также нужно показать дату последнего платежа за стоянку MAX(opl_parking_due.opl_to) AS opl_to. Также не должны попадать удаленные записи deleted = 'X'. Запрос должен показать все гаражи уникально (если есть арендатор, то гараж раздваивается на хозяина и арендатора): 55-гаражей + 2арендатора - 1помечен на удал. гараж = 56 записей. На данный момент запрос показывает гаражи, которые не имеют владельцев, то- есь нет связки с owners через history_owners.... Если Вам что то понятно помогите, или дайте какой то совет
|