實例講解聯合主鍵查詢sql語句

 實例講解聯合主鍵查詢sql語句,有這么一個表,看具體的Sql語句:

CREATE   TABLE   MedicineTypeInfo
(
MedicineTypeID CHAR(10) NOT   NULL
CONSTRAINT   PK_MedicineTypeInfo   PRIMARY   KEY,
MedicineTypeName   VARCHAR(50) NOT   NULL
)
GO
INSERT   MedicineTypeInfo
VALUES( 'C001 ',   '西藥 ')
INSERT   MedicineTypeInfo
VALUES( 'Z002 ',   '中藥 ')
INSERT   MedicineTypeInfo
VALUES( 'G003 ',   '中成藥 ')
GO
CREATE   TABLE   Medicine
(
MedicineID CHAR(10) NOT   NULL,
MedicineName VARCHAR(50) NOT   NULL,
UnitName VARCHAR(10) NOT   NULL,
MedicineType CHAR(10) NOT   NULL
CONSTRAINT   FK_Medicine_Medicine   FOREIGN   KEY(MedicineType)   REFERENCES   MedicineTypeInfo(MedicineTypeID),
ModifyDate DATETIME NOT   NULL,
Remark VARCHAR(255) NULL,
CONSTRAINT   PK_Medicine   PRIMARY   KEY(MedicineID,   ModifyDate),
)
GO
INSERT   Medicine
VALUES( 'M001 ',   '阿斯匹林 ',   '包 ',   'C001 ',   '1999-05-18 ',   'rgteafrewrwrw ')
INSERT   Medicine
VALUES( 'M002 ',   '喉疾靈 ',   '瓶 ',   'G003 ',   '2004-03-26 ',   'dagfsafrewiew ')
INSERT   Medicine
VALUES( 'M003 ',   '草珊瑚 ',   '瓶 ',   'G003 ',   '2004-06-13 ',   NULL)
INSERT   Medicine
VALUES( 'M004 ',   '四環素 ',   '包 ',   'C001 ',   '2004-03-26 ',   'adgfafrewrw ')
INSERT   Medicine
VALUES( 'M005 ',   '甘草 ',   'kg ',   'Z002 ',   '2003-06-30 ',   'dsgferw ')
INSERT   Medicine
VALUES( 'M006 ',   '蘭美舒 ',   '支 ',   'C001 ',   '2004-09-23 ',   'tyjudh ')
INSERT   Medicine
VALUES( 'M007 ',   '止咳水 ',   '支 ',   'G003 ',   '2004-11-25 ',   'dsgfbdzvsderw ')
INSERT   Medicine
VALUES( 'M001 ',   '阿斯匹林 ',   '包 ',   'C001 ',   '2004-02-18 ',   'rgteafrewrwrw ')
INSERT   Medicine
VALUES( 'M002 ',   '喉疾靈 ',   '瓶 ',   'G003 ',   '2004-05-13 ',   'dagfsafrewiew ')
INSERT   Medicine
VALUES( 'M003 ',   '草珊瑚 ',   '瓶 ',   'G003 ',   '2003-12-13 ',   NULL)
INSERT   Medicine
VALUES( 'M004 ',   '四環素 ',   '包 ',   'C001 ',   '2003-03-26 ',   'adgfafrewrw ')
INSERT   Medicine
VALUES( 'M005 ',   '甘草 ',   'kg ',   'Z002 ',   '2004-06-20 ',   'dsgferw ')
INSERT   Medicine
VALUES( 'M006 ',   '蘭美舒 ',   '支 ',   'C001 ',   '2004-01-23 ',   'tyjudh ')
INSERT   Medicine
VALUES( 'M007 ',   '止咳水 ',   '支 ',   'G003 ',   '2004-02-18 ',   'dsgfbdzvsderw ')
GO
請問高手們要怎么樣才能查找出表Medicine同一種藥最新的ModifyDate的全部資料,記住是全部資料!
我想要的查詢結果里是一種藥只能有唯一的最新的ModifyDate的全部資料!

正確答案是:SELECT   m1.MedicineID,   MedicineName,   UnitName,   MedicineType,   ModifyDate,   Remark
FROM   Medicine   m1
JOIN   (SELECT   mo=MAX(ModifyDate),   MedicineID
            FROM   Medicine
            GROUP   BY   MedicineID)   m2
ON   m1.ModifyDate   =   m2.mo   AND   m1.MedicineID   =   m2.MedicineID

發表評論

 




 

哈努曼与假面五骑士
金尊汇 全天官方一分快三精准计划 名人彩票倒闭 时时彩官方开奖直播 极速快三大小单双技巧(极速快三大小) 正宗中国麻将 北京pk106码2期技巧 欢斗地主单机版 博发国际 重庆时时彩和新时时彩 云南时时开奖时间 时时彩官方开奖直播 快乐时时b盘 足球单双判断技巧图解 快速时时开奖网址 苹果下载软件快用