当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 2 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : sqlite3 ,这个查询如何写?
帖子发表于 : 2011-06-07 21:28 
头像

注册: 2008-07-30 23:21
帖子: 13427
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 127
代码:
-- 厂家表
CREATE TABLE Vender (
    Id   INTEGER     PRIMARY KEY AUTOINCREMENT,
    Name CHAR( 32 )  NOT NULL
                     UNIQUE,
    Show BOOLEAN     NOT NULL
                     DEFAULT ( TRUE )
);

-- 产品类型表
CREATE TABLE ProductType (
    Id   INTEGER     PRIMARY KEY AUTOINCREMENT,
    Name CHAR( 32 )  NOT NULL
                     UNIQUE
);

-- 产品表
CREATE TABLE Product (
    Id    INTEGER PRIMARY KEY AUTOINCREMENT,
    V_Id  INTEGER NOT NULL
                  REFERENCES Vender ( Id ) ON DELETE NO ACTION
                                           ON UPDATE CASCADE,
    PT_Id INTEGER NOT NULL
                  REFERENCES ProductType ( Id ) ON DELETE NO ACTION
                                                ON UPDATE CASCADE,
    Show BOOLEAN  NOT NULL
                  DEFAULT ( TRUE ),
    UNIQUE ( V_Id, PT_Id )
);

-- 产品价格表
CREATE TABLE ProductValue (
    P_Id  INTEGER NOT NULL
                  REFERENCES Product ( Id ) ON DELETE NO ACTION
                                            ON UPDATE CASCADE,
    Value NUMERIC NOT NULL,
    VDate DATE    NOT NULL,
    UNIQUE ( P_Id, VDate )
);


厂家名,产品类型名,最新报价,定价日期
代码:
        SELECT Vender.Name,
               ProductType.Name,
               ProductValue.Value,
               ProductValue.VDate
          FROM ……此处该如何写?


_________________
(2015-11-16 更新)适合 WM 的截图脚本
(2015-08-24 更新)Debian、Ubuntu 源列表说明
(2013-02-01 首发)文字如何绘出
▷▷ 【更 多 在 此】 ◁◁
箪食瓢饮随遇安,不求栋梁求参天。
【初韵】一门牛逼的编程语言。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: sqlite3 ,这个查询如何写?
帖子发表于 : 2011-06-08 1:08 
头像

注册: 2008-07-30 23:21
帖子: 13427
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 127
代码:
-- 产品视图
CREATE VIEW ProductView AS
       SELECT Tmp.Id,
              Vender.Name AS Vender,
              ProductType.Name AS Type,
              Tmp.Value,
              Tmp.Date,
              Tmp.Show
         FROM (
              SELECT P.Id,
                     P.V_Id,
                     P.PT_Id,
                     V.Value,
                     max( V.Date ) AS Date,
                     P.Show
                FROM Product AS P,
                     ProductValue AS V
               WHERE P.Id = V.P_Id
               GROUP BY P.Id
        )
           AS Tmp,
              Vender,
              ProductType
        WHERE Tmp.V_Id = Vender.Id
              AND
              Tmp.PT_Id = ProductType.Id;


_________________
(2015-11-16 更新)适合 WM 的截图脚本
(2015-08-24 更新)Debian、Ubuntu 源列表说明
(2013-02-01 首发)文字如何绘出
▷▷ 【更 多 在 此】 ◁◁
箪食瓢饮随遇安,不求栋梁求参天。
【初韵】一门牛逼的编程语言。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 2 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译