Есть три таблицы. БД - MySQL
Вот их описание:
Код:
CREATE TABLE IF NOT EXISTS marshruti(
idMarsh INT(11) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT,
NazvMarsh VARCHAR(128) NOT NULL,
OpisMarsh VARCHAR(255) DEFAULT NULL,
CenaMarsh DECIMAL(2, 0) UNSIGNED DEFAULT NULL,
PRIMARY KEY (idMarsh),
UNIQUE INDEX UK_marshruti (NazvMarsh (5), OpisMarsh (6))
)
CREATE TABLE IF NOT EXISTS zakazi(
`date` DATE NOT NULL,
nomZak INT(11) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT,
idKlient INT(11) UNSIGNED NOT NULL,
idMarsh INT(11) UNSIGNED NOT NULL,
kolPut INT(11) UNSIGNED NOT NULL,
PRIMARY KEY (nomZak),
CONSTRAINT FK_zakazi_klienti_idKlient FOREIGN KEY (idKlient)
REFERENCES klienti (idKlient) ON DELETE RESTRICT ON UPDATE RESTRICT,
CONSTRAINT FK_zakazi_marshruti_idMarsh FOREIGN KEY (idMarsh)
REFERENCES marshruti (idMarsh) ON DELETE RESTRICT ON UPDATE RESTRICT
)
CREATE TABLE IF NOT EXISTS otkazi(
`date` DATE NOT NULL,
id INT(11) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT,
nomZak INT(11) UNSIGNED NOT NULL,
kolVozvrPut INT(11) UNSIGNED NOT NULL,
PRIMARY KEY (id),
CONSTRAINT FK_otkazi_zakazi_nomZak FOREIGN KEY (nomZak)
REFERENCES zakazi (nomZak) ON DELETE RESTRICT ON UPDATE RESTRICT
)
Необходимо за один запрос выяснить сколько денег потеряла фирма из-за отказов.
Дожился запрос не могу написать.
Может так:
select sum(m.CenaMarsh)
from marshruti m
join zakazi z on m.idMarsh = z.idMarsh
join otkazi o on o.nomZak = z.nomZak
Просто как-то