求SQL,
有两个表
订货总表(订货编号,订货时间,.....订货总金额)
订货明细表(订货编号,....是否到货)
我想查询出订货明细表中全部到货的订货总表的所有字段,谢谢。
例如:
订货总表(订货编号,订货时间,.....订货总金额)
0001,2009-07-01,.....,200
0002,2009-07-02,.....,300
0003,2009-07-03,.....,500
订货明细表(订货编号,....是否到货)
0001,....A商品,否
0001,....d商品,否
0002,....A商品,是
0002,....b商品,是
0002,....c商品,是
0003,....c商品,是
0003,....e商品,否
查询的结果应为:
0002,2009-07-02,.....,300
有两个表
订货总表(订货编号,订货时间,.....订货总金额)
订货明细表(订货编号,....是否到货)
我想查询出订货明细表中全部到货的订货总表的所有字段,谢谢。
例如:
订货总表(订货编号,订货时间,.....订货总金额)
0001,2009-07-01,.....,200
0002,2009-07-02,.....,300
0003,2009-07-03,.....,500
订货明细表(订货编号,....是否到货)
0001,....A商品,否
0001,....d商品,否
0002,....A商品,是
0002,....b商品,是
0002,....c商品,是
0003,....c商品,是
0003,....e商品,否
查询的结果应为:
0002,2009-07-02,.....,300
解决方案 »
- 一道难题 100分
- 用VB+SQL SERVER 2000+ADO练习编写网络版软件,那么在同一台电脑上如何模拟出3个客户端?
- 不同库之间的连接???????
- 无法将 视图'dbo.BP_VIEW' 绑定到架构。'dbo.Get_needChar' 尚未绑定到架构。
- 字符串转换
- 一个查询语句计算的错误,请大锅们帮忙瞧一瞧败哪里有错?
- 在asp里 if password=rs("password") then~~~但是我的rs("password")是Varbinary类型的,这样写告诉我类型不匹配!怎么办?
- 怎样把A库B表复制为C库B表?
- 对于同一个字段有多个相同的值,如何写查询语句让结果中只出现一个相同的数据
- SQL2000哪本书比较好(对于初学者)???
- 一张表中有没有办法设置两个标识列
- 求SQL,谢谢!
订货总表 inner jion 订货明细表where 订货明细表.是否到=是and 订货总表.ID=订货明细表.ID
INSERT 订货总表
SELECT '0001','2009-07-01',200 UNION
SELECT '0002','2009-07-02',300 UNION
SELECT '0003','2009-07-03',500
CREATE TABLE 订货明细表2(订货编号 VARCHAR(10),商品 VARCHAR(10),是否到货 VARCHAR(10))
INSERT 订货明细表2
SELECT '0001','A商品','否'UNION
SELECT '0001','d商品','否' UNION
SELECT '0002','A商品','是' UNION
SELECT '0002','b商品','是' UNION
SELECT '0002','商品','是' UNION
SELECT '0003','c商品','是' UNION
SELECT '0003','e商品','否' ---DROP TABLE 订货总表select DISTINCT A.*
from 订货总表 A
INNER JOIN
(SELECT 订货编号 FROM 订货明细表2 WHERE 是否到货 ='是'AND 订货编号 NOT IN (SELECT 订货编号 FROM 订货明细表2 WHERE 是否到货 ='否'))AS B
ON A.订货编号=B.订货编号 订货编号 订货时间 订货总金额
---------- ------------------------------------------------------ ---------------------
0002 2009-07-02 00:00:00.000 300.0000(所影响的行数为 1 行)
-- -----------t_mac 小编-------------
---希望有天成为大虾----
-- =========================================IF OBJECT_ID('订货总表') IS NOT NULL
DROP TABLE 订货总表
GO
CREATE TABLE 订货总表(订货编号 varchar(10),订货时间 datetime,订货金额 int )
go
insert 订货总表 SELECT
'0001','2009-07-01',200 UNION ALL SELECT
'0002','2009-07-02',300 UNION ALL SELECT
'0003','2009-07-03',500
go
IF OBJECT_ID('订货明细表') IS NOT NULL
DROP TABLE 订货明细表
GO
CREATE TABLE 订货明细表(订货编号 varchar(10),商品编号 varchar(10),是否到货 char(2) )
go
insert 订货明细表 SELECT
'0001','A商品','否' UNION ALL SELECT
'0001','d商品','否' UNION ALL SELECT
'0002','A商品','是' UNION ALL SELECT
'0002','b商品','是' UNION ALL SELECT
'0002','c商品','是' UNION ALL SELECT
'0003','c商品','是' UNION ALL SELECT
'0003','e商品','否' select * from 订货总表 t
where not exists (select * from 订货明细表 where 订货编号=t.订货编号 and 是否到货='否' )
/*------------
(7 行受影响)
订货编号 订货时间 订货金额
---------- ----------------------- -----------
0002 2009-07-02 00:00:00.000 300(1 行受影响)
(1 行受影响)
-------*/
订货总表(订货编号,订货时间,.....订货总金额)
订货明细表(订货编号,....是否到货)
--select a.*
from 订货总表 a
left join (select 订货编号,max(是否到货) as col from 订货明细表 group by 订货编号) b
on a.订货编号 = b.订货编号
where b.col = '是'
DROP TABLE 订货总表
GO
CREATE TABLE 订货总表(订货编号 varchar(10),订货时间 datetime,订货金额 int )
go
insert 订货总表 SELECT
'0001','2009-07-01',200 UNION ALL SELECT
'0002','2009-07-02',300 UNION ALL SELECT
'0003','2009-07-03',500
go
IF OBJECT_ID('订货明细表') IS NOT NULL
DROP TABLE 订货明细表
GO
CREATE TABLE 订货明细表(订货编号 varchar(10),商品编号 varchar(10),是否到货 char(2) )
go
insert 订货明细表 SELECT
'0001','A商品','否' UNION ALL SELECT
'0001','d商品','否' UNION ALL SELECT
'0002','A商品','是' UNION ALL SELECT
'0002','b商品','是' UNION ALL SELECT
'0002','c商品','是' UNION ALL SELECT
'0003','c商品','是' UNION ALL SELECT
'0003','e商品','否' goselect a.*
from 订货总表 a
left join (select 订货编号,min(是否到货) as col from 订货明细表 group by 订货编号) b
on a.订货编号 = b.订货编号
where b.col = '是'
goIF OBJECT_ID('订货明细表') IS NOT NULL
DROP TABLE 订货明细表
GO
IF OBJECT_ID('订货总表') IS NOT NULL
DROP TABLE 订货总表
GO/*订货编号 订货时间 订货金额
---------- ------------------------------------------------------ -----------
0002 2009-07-02 00:00:00.000 300(所影响的行数为 1 行)
*/