亲切的问候。
我对如何在 MySQL 中实现查询有疑问,抱歉太长了。
现在:我的网站有(不同项目和数量的)产品包。
项目存储在名为ItemTbl的表中,有 2 个字段(IdItem 和 NameItem)
CREATE TABLE ItemTbl (
IdItem VARCHAR(16) UNIQUE NOT NULL,
NameItem VARCHAR(32) NOT NULL
);
INSERT INTO ItemTbl (IdItem, NameItem) VALUES
('Item00','Item 00'),
('Item01','Item 01'),
('Item02','Item 02'),
('Item03','Item 03'),
('Item04','Item 04'),
('Item05','Item 05');
包存储在名为PackTbl的表中,有 2 个字段(IdPack 和 NamePack)
CREATE TABLE PackTbl (
IdPack VARCHAR(16) UNIQUE NOT NULL,
NamePack VARCHAR(32) NOT NULL
);
INSERT INTO PackTbl (IdPack, NamePack) VALUES
('Pack00','Pack 00'),
('Pack01','Pack 01'),
('Pack02','Pack 02'),
('Pack03','Pack 03');
站点存储在名为SiteTbl的表中,有 2 个字段(IdSite 和 NameSite)
CREATE TABLE SiteTbl (
IdSite VARCHAR(16) UNIQUE NOT NULL,
NameSite VARCHAR(32) NOT NULL
);
INSERT INTO SiteTbl (IdSite, NameSite) VALUES
('Site00','Site 00'),
('Site01','Site 01');
这些包使用名为ItemPackTbl的表与项目相关,该表具有 3 个字段(IdItem、IdPack、QtyIP)
CREATE TABLE ItemPackTbl (
IdItem VARCHAR(16) NOT NULL,
IdPack VARCHAR(16) NOT NULL,
QtyIP INT NOT NULL
);
INSERT INTO ItemPackTbl (IdItem, IdPack, QtyIP) VALUES
('Item00', 'Pack00', '90'),
('Item01', 'Pack00', '81'),
('Item02', 'Pack00', '72'),
('Item03', 'Pack01', '63'),
('Item04', 'Pack01', '54'),
('Item05', 'Pack01', '50'),
('Item01', 'Pack02', '61'),
('Item04', 'Pack02', '72'),
('Item03', 'Pack03', '83'),
('Item02', 'Pack03', '94');
这些站点使用名为PackSiteTbl的表与包相关,该表具有 3 个字段(IdPack、IdSite、QtyPS)
CREATE TABLE PackSiteTbl (
IdPack VARCHAR(16) NOT NULL,
IdSite VARCHAR(16) NOT NULL,
QtyPS INT NOT NULL
);
INSERT INTO PackSiteTbl (IdPack, IdSite, QtyPS) VALUES
('Pack00', 'Site00', '5'),
('Pack03', 'Site00', '4'),
('Pack01', 'Site01', '8'),
('Pack02', 'Site01', '1');
现在我们有一个名为QuotTbl的表,其中仅包含项目的不同报价(因为将计算包或站点)以及成本和日期。
CREATE TABLE QuotTbl (
IdQuot VARCHAR(16) UNIQUE NOT NULL,
IdItem VARCHAR(16) NOT NULL,
QtCost INT NOT NULL,
QtDate DATE NOT NULL
);
INSERT INTO QuotTbl (IdQuot, IdItem, QtCost, QtDate) VALUES
('Quot00', 'Item00', '90', '1983-12-30'),
('Quot01', 'Item00', '72', '2004-09-09'),
('Quot02', 'Item01', '63', '2013-02-01'),
('Quot03', 'Item01', '50', '2012-05-09'),
('Quot04', 'Item02', '61', '1983-12-30'),
('Quot05', 'Item02', '27', '2004-09-09'),
('Quot06', 'Item03', '38', '2013-02-01'),
('Quot07', 'Item03', '49', '2012-05-09'),
('Quot08', 'Item04', '90', '1983-12-30'),
('Quot09', 'Item04', '72', '2004-09-09'),
('Quot10', 'Item05', '63', '2013-02-01'),
('Quot11', 'Item05', '50', '2012-05-01');
我想做两件事:
我需要知道什么是获取带有项目简历的SiteTbl条目列表的查询(添加)。
Site00有:
ItemId, Qty Item00, 450 Item01, 405 Item02, 736 Item03, 332
Site01有:
ItemId, Qty Item01, 61 Item03, 504 Item04, 504 Item05, 400
根据 QuotTbl 表查找最便宜(或最新)的报价,以及所有项目列表。
Site00 最便宜:
ItemId, Qty Cost Total Item00, 450 72 32400 Item01, 405 50 20250 Item02, 736 27 19872 Item03, 332 38 12616
Site01 最便宜:
ItemId, Qty Cost Total Item01, 61 50 3050 Item03, 504 38 19152 Item04, 504 72 36288 Item05, 400 50 20000
Site00 最新:
ItemId, Qty Cost Total Item00, 450 72 32400 Item01, 405 63 25515 Item02, 736 27 19872 Item03, 332 38 12616
Site01 最新:
ItemId, Qty Cost Total Item01, 61 63 3843 Item03, 504 38 19152 Item04, 504 72 36288 Item05, 400 63 25200
感谢您的宝贵帮助。
此致。