工具店数据库MySQL查询语句求助(含德语ER图)
工具店数据库查询语句解决方案
1. 筛选VIN含"123"的车辆,返回VehicleID
原语句错误在于用=匹配通配符,正确写法用LIKE:
SELECT FahrzeugID AS VehicleID FROM Fahrzeug WHERE VIN LIKE '%123%';
注:德语实体表名为Fahrzeug(对应你说的Vehicle),FahrzeugID为车辆ID列
2. 查询2021年所有销售记录,返回document number
通过关联销售(Verkauf)与服务(Dienstleistung)表,按服务日期年份筛选:
SELECT Verkauf.Belegnummer AS `document number` FROM Verkauf JOIN Dienstleistung ON Verkauf.Dienstleistung_D_ID = Dienstleistung.D_ID WHERE YEAR(Dienstleistung.Datum) = 2021;
注:Datum是服务日期列,Belegnummer为销售单据号
3. 计算2020年销售总营收
关联服务表筛选2020年记录,求和销售金额:
SELECT SUM(Verkauf.Preis) AS 总营收 FROM Verkauf JOIN Dienstleistung ON Verkauf.Dienstleistung_D_ID = Dienstleistung.D_ID WHERE YEAR(Dienstleistung.Datum) = 2020;
注:Preis为销售单价,直接求和得到总营收
4. 查询客户ID为"4711"的所有销售记录,返回Date of sale、product number、price
修正原语句的==(SQL用=),关联服务表获取销售日期:
SELECT Dienstleistung.Datum AS `Date of sale`, Verkauf.Artikelnummer AS `product number`, Verkauf.Preis AS price FROM Verkauf JOIN Dienstleistung ON Verkauf.Dienstleistung_D_ID = Dienstleistung.D_ID WHERE Dienstleistung.Kunde_K_ID = 'K4711';
注:Kunde_K_ID为客户ID列,Artikelnummer为产品编号
5. 查询被入职年份早于2010年的员工服务过的客户信息,按姓氏、名字排序
关联多表获取员工入职信息与对应客户记录:
SELECT Kunde.K_ID AS `Customer number`, Kunde.Vorname AS `first name`, Kunde.Nachname AS `last name`, Mitarbeiter.M_ID AS `personnel number`, Mitarbeiter.Nachname AS `last name of employee`, Personalakte.Eintrittsjahr AS `year of employment` FROM Kunde JOIN Dienstleistung ON Kunde.K_ID = Dienstleistung.Kunde_K_ID JOIN Reparatur ON Dienstleistung.D_ID = Reparatur.Dienstleistung_D_ID JOIN Reparaturteammitglied ON Reparatur.R_ID = Reparaturteammitglied.Reparatur_R_ID JOIN Mitarbeiter ON Reparaturteammitglied.Mitarbeiter_M_ID = Mitarbeiter.M_ID JOIN Personalakte ON Mitarbeiter.Personalakte_P_ID = Personalakte.P_ID WHERE Personalakte.Eintrittsjahr < 2010 ORDER BY Kunde.Nachname, Kunde.Vorname;
注:Eintrittsjahr为入职年份,Vorname是名字,Nachname是姓氏
内容的提问来源于stack exchange,提问作者phil08
相关产品推荐
相关产品推荐

