2010-06-02 357 views
-1

我需要查询我的数据库中有销售商品记录的表格。我希望查询检测特定产品并计算出售数量。该产品现在有300个,但未来会增加。如何编写这个MySQL数据库查询?

下面是我的数据库表

#---------------------------- 
# Table structure for litorder 
#---------------------------- 
CREATE TABLE `litorder` (
    `id` int(10) NOT NULL auto_increment, 
    `name` varchar(50) NOT NULL default '', 
    `address` varchar(50) NOT NULL default '', 
    `xdate` date NOT NULL default '0000-00-00', 
    `ref` varchar(20) NOT NULL default '', 
    `code1` varchar(50) NOT NULL default '', 
    `code2` varchar(50) NOT NULL default '', 
    `code3` varchar(50) NOT NULL default '', 
    `code4` varchar(50) NOT NULL default '', 
    `code5` varchar(50) NOT NULL default '', 
    `code6` varchar(50) NOT NULL default '', 
    `code7` varchar(50) NOT NULL default '', 
    `code8` varchar(50) NOT NULL default '', 
    `code9` varchar(50) NOT NULL default '', 
    `code10` varchar(50) NOT NULL default '', 
    `code11` varchar(50) character set latin1 collate latin1_bin NOT NULL default '', 
    `code12` varchar(50) NOT NULL default '', 
    `code13` varchar(50) NOT NULL default '', 
    `code14` varchar(50) NOT NULL default '', 
    `code15` varchar(50) NOT NULL default '', 
    `product1` varchar(100) NOT NULL default '0', 
    `product2` varchar(100) NOT NULL default '0', 
    `product3` varchar(100) NOT NULL default '0', 
    `product4` varchar(100) NOT NULL default '0', 
    `product5` varchar(100) NOT NULL default '0', 
    `product6` varchar(100) NOT NULL default '0', 
    `product7` varchar(100) NOT NULL default '0', 
    `product8` varchar(100) NOT NULL default '0', 
    `product9` varchar(100) NOT NULL default '0', 
    `product10` varchar(100) NOT NULL default '0', 
    `product11` varchar(100) NOT NULL default '0', 
    `product12` varchar(100) NOT NULL default '0', 
    `product13` varchar(100) NOT NULL default '0', 
    `product14` varchar(100) NOT NULL default '0', 
    `product15` varchar(100) NOT NULL default '0', 
    `price1` int(10) NOT NULL default '0', 
    `price2` int(10) NOT NULL default '0', 
    `price3` int(10) NOT NULL default '0', 
    `price4` int(10) NOT NULL default '0', 
    `price5` int(10) NOT NULL default '0', 
    `price6` int(10) NOT NULL default '0', 
    `price7` int(10) NOT NULL default '0', 
    `price8` int(10) NOT NULL default '0', 
    `price9` int(10) NOT NULL default '0', 
    `price10` int(10) NOT NULL default '0', 
    `price11` int(10) NOT NULL default '0', 
    `price12` int(10) NOT NULL default '0', 
    `price13` int(10) NOT NULL default '0', 
    `price14` int(10) NOT NULL default '0', 
    `price15` int(10) NOT NULL default '0', 
    `quantity1` int(10) NOT NULL default '0', 
    `quantity2` int(10) NOT NULL default '0', 
    `quantity3` int(10) NOT NULL default '0', 
    `quantity4` int(10) NOT NULL default '0', 
    `quantity5` int(10) NOT NULL default '0', 
    `quantity6` int(10) NOT NULL default '0', 
    `quantity7` int(10) NOT NULL default '0', 
    `quantity8` int(10) NOT NULL default '0', 
    `quantity9` int(10) NOT NULL default '0', 
    `quantity10` int(10) NOT NULL default '0', 
    `quantity11` int(10) NOT NULL default '0', 
    `quantity12` int(10) NOT NULL default '0', 
    `quantity13` int(10) NOT NULL default '0', 
    `quantity14` int(10) NOT NULL default '0', 
    `quantity15` int(10) NOT NULL default '0', 
    `amount1` int(10) NOT NULL default '0', 
    `amount2` int(10) NOT NULL default '0', 
    `amount3` int(10) NOT NULL default '0', 
    `amount4` int(10) NOT NULL default '0', 
    `amount5` int(10) NOT NULL default '0', 
    `amount6` int(10) NOT NULL default '0', 
    `amount7` int(10) NOT NULL default '0', 
    `amount8` int(10) NOT NULL default '0', 
    `amount9` int(10) NOT NULL default '0', 
    `amount10` int(10) NOT NULL default '0', 
    `amount11` int(10) NOT NULL default '0', 
    `amount12` int(10) NOT NULL default '0', 
    `amount13` int(10) NOT NULL default '0', 
    `amount14` int(10) NOT NULL default '0', 
    `amount15` int(10) NOT NULL default '0', 
    `totalNaira` double(20,0) NOT NULL default '0', 
    `totalDollar` int(20) NOT NULL default '0', 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='InnoDB free: 4096 kB; InnoDB free: 4096 kB; InnoDB free: 409'; 
#---------------------------- 
# Records for table litorder 
#---------------------------- 


insert into litorder values 
(27, 'Sanyaolu Fisayo', '14 Adegboyega Street Palmgrove Lagos', '2010-05-31', '', 'DL 001', 'DL 002', 'DL 003', '', '', '', '', '', '', '', '', '', '', '', '', 'AILMENT & PREVENTION DVD- ENGLISH', 'AILMENT & PREVENTION DVD- HAUSA', 'BEAUTY CD', '', '', '', '', '', '', '', '', '', '', '', '', 800, 800, 3000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12800, 12800, 60000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '85600', 563), 
(28, 'Irenonse Esther', 'Lagos,Nigeria', '2010-06-01', '', 'DL 005', 'DL 008', 'FC 004', '', '', '', '', '', '', '', '', '', '', '', '', 'GET HEALTHY DVD', 'YOUR FUTURE DVD', 'FOREVER FACE CAP (YELLOW)', '', '', '', '', '', '', '', '', '', '', '', '', 1000, 900, 2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2000, 1800, 6000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '9800', 64), 
(29, 'Kalu Lekway', 'Lagos, Nigeria', '2010-06-01', '', 'DL 001', 'DL 003', '', '', '', '', '', '', '', '', '', '', '', '', '', 'AILMENT & PREVENTION DVD- ENGLISH', 'BEAUTY CD', '', '', '', '', '', '', '', '', '', '', '', '', '', 800, 3000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2400, 18000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '20400', 133), 
(30, 'Dele', 'Ilupeju', '2010-06-02', '', 'DL 001', 'DL 003', '', '', '', '', '', '', '', '', '', '', '', '', '', 'AILMENT & PREVENTION DVD- ENGLISH', 'BEAUTY CD', '', '', '', '', '', '', '', '', '', '', '', '', '', 800, 3000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8000, 30000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '38000', 250); 
+2

您需要更具体地了解您要做的事情。 – Amber 2010-06-02 20:42:18

+0

说明字段 – Ben 2010-06-02 20:43:16

+0

我们不应该为您建立查询,如果您可以给我们一个想法,我们可以帮助您。 – 2010-06-02 20:43:43

回答

0

您需要花几个小时学习关系设计。建模您的实体(产品,客户,订单),创建必要的外键和连接表,并学习如何在查询中进行连接。

0

我不确定您需要哪个“数量”,因为您的表格中有12个不同的“数量”字段。这里可能是一个类似于你正在寻找:

SELECT COUNT(quantity1) AS TotalAmnt 
FROM litorder 
WHERE product1 = 'yourProduct' 
GROUP BY product1 

你会想尝试normalize your database为好,使查询,如在未来更容易些。

0

由于表未规范化,我认为查询将不整齐。但如果你有做硬盘的方式的话,我想这可能工作

选择产品1,数量1,从 表名,其中“您要搜索的产品名称”从 表名 工会 选择产品2,quantity2产品1 =其中product2 ='您要搜索的产品名称'

对表格中的每一列进行上述15次。但是随着更多产品的加入,这个查询会变得很慢。所以最好的方法是规范化这张桌子。这将会为您节省大量的时间。