求超超超复杂sql语句,搞了一天,头都大了,请高手帮忙

asdmeimei 2010-04-08 06:45:22
需要显示的数据
1.区域名称 soho100.zone,
2.楼盘名称 soho100.buildingname,
3.地址 ord100.area,
4.公司名称 cst100.descshort,
5.编号 ord110.docno,
6.编号人 ord100.orderer,
7.货物名称 inv100.description,
8.单位 inv100.specification,
9.单价 ord110.uom,
10.数量 ord110.orgprc,
11.金额 ord110.txqty,
12.加急费 ord100.amt,
13.小计 ord100.caramt
涉及到的表有5张,
如图


我弄了一天了,没弄出来。求救啊
...全文
141 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
asd_qingchengxue 2010-04-08
  • 打赏
  • 举报
回复
好复杂
asdmeimei 2010-04-08
  • 打赏
  • 举报
回复
好了

SELECT     dbo.ord110.uom, dbo.ord100.orderer, dbo.ord100.area, dbo.ord100.amt, dbo.soho100.zone, dbo.soho100.buildingname, dbo.cst100.descshort, 
dbo.inv100.description, dbo.ord110.docno, dbo.ord110.orgprc, dbo.ord110.txqty, dbo.ord110.acramt, dbo.ord100.caramt, dbo.ord100.shouldamt
FROM dbo.ord100 INNER JOIN
dbo.ord110 ON dbo.ord100.docno = dbo.ord110.docno INNER JOIN
dbo.cst100 ON dbo.ord110.cust = dbo.cst100.cust INNER JOIN
dbo.soho100 ON dbo.cst100.sohobno = dbo.soho100.bno INNER JOIN
dbo.inv100 ON dbo.ord110.part = dbo.inv100.part


谢谢大家帮忙哈。

jwwyqs 2010-04-08
  • 打赏
  • 举报
回复
眼花掉 了帮顶吧
asdmeimei 2010-04-08
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 htl258 的回复:]

SQL code
SELECT e.zone, e.buildingname, c.area, b.descshort, a.docno, c.orderer,
d.[description], a.uom, a.orgprc, a.txqty, c.amt, c.caramt
FROM (select distinct cust,zone,buildingname,docno,uo……
[/Quote]

哥哥,我刚刚就试了下,没好。呜呜呜

消息 207,级别 16,状态 1,第 3 行
列名 'zone' 无效。
消息 207,级别 16,状态 1,第 3 行
列名 'buildingname' 无效。
消息 207,级别 16,状态 1,第 9 行
列名 'part' 无效。
消息 207,级别 16,状态 1,第 2 行
列名 'amt' 无效。
htl258_Tony 2010-04-08
  • 打赏
  • 举报
回复
SELECT e.zone, e.buildingname, c.area, b.descshort, a.docno, c.orderer, 
d.[description], a.uom, a.orgprc, a.txqty, c.amt, c.caramt
FROM (select distinct cust,zone,buildingname,docno,uom,orgprc,txqty from dbo.ord110) a
INNER JOIN (select distinct descshort,cust from dbo.cst100) b
ON a.cust = b.cust
INNER JOIN (select distinct docno,area,orderer,caramt from dbo.ord100) c
ON a.docno = c.docno
INNER JOIN (select distinct part,[description] from dbo.inv100) d
ON a.part = d.part
CROSS JOIN (select distinct zone ,buildingname from dbo.soho100) e
要e,不好意思.
asdmeimei 2010-04-08
  • 打赏
  • 举报
回复
楼上哥哥,这个不好用呀。

再帮帮忙啦
asdmeimei 2010-04-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 htl258 的回复:]
SQL code
SELECT d.zone, d.buildingname, c.area, b.descshort, a.docno, c.orderer,
d.[description], a.uom, a.orgprc, a.txqty, c.amt, c.caramt
FROM (select distinct cust,zone,buildingname,docno,u……
[/Quote]
消息 207,级别 16,状态 1,第 3 行
列名 'zone' 无效。
消息 207,级别 16,状态 1,第 3 行
列名 'buildingname' 无效。
消息 207,级别 16,状态 1,第 9 行
列名 'part' 无效。
消息 1011,级别 16,状态 1,第 9 行
在 FROM 子句中多次指定了相关名称 'd'。
htl258_Tony 2010-04-08
  • 打赏
  • 举报
回复
SELECT d.zone, d.buildingname, c.area, b.descshort, a.docno, c.orderer, 
d.[description], a.uom, a.orgprc, a.txqty, c.amt, c.caramt
FROM (select distinct cust,zone,buildingname,docno,uom,orgprc,txqty from dbo.ord110) a
INNER JOIN (select distinct descshort,cust from dbo.cst100) b
ON a.cust = b.cust
INNER JOIN (select distinct docno,area,orderer,caramt from dbo.ord100) c
ON a.docno = c.docno
INNER JOIN (select distinct part,[description] from dbo.inv100) d
ON a.part = d.part
CROSS JOIN (select distinct zone ,buildingname from dbo.soho100) d
复制错了,先测试这样
htl258_Tony 2010-04-08
  • 打赏
  • 举报
回复
SELECT a.zone, a.buildingname, c.area, b.descshort, a.docno, c.orderer, 
d.[description], a.uom, a.orgprc, a.txqty, c.amt, c.caramt
FROM (select distinct cust,zone,buildingname,docno,uom,orgprc,txqty from dbo.ord110) a
INNER JOIN (select distinct descshort,cust from dbo.cst100) b
ON a.cust = b.cust
INNER JOIN (select distinct docno,area,orderer,caramt from dbo.ord100) c
ON a.docno = c.docno
INNER JOIN (select distinct part,[description] from dbo.inv100) d
ON a.part = d.part
--CROSS JOIN dbo.soho100
这段代码先运行一下看结果怎么样?
asdmeimei 2010-04-08
  • 打赏
  • 举报
回复
SELECT     dbo.soho100.zone, dbo.soho100.buildingname, dbo.ord100.area, dbo.cst100.descshort, dbo.ord110.docno, dbo.ord100.orderer, 
dbo.inv100.description, dbo.ord110.uom, dbo.ord110.orgprc, dbo.ord110.txqty, dbo.ord100.amt, dbo.ord100.caramt
FROM dbo.ord110 INNER JOIN
dbo.cst100 ON dbo.ord110.cust = dbo.cst100.cust INNER JOIN
dbo.ord100 ON dbo.ord110.docno = dbo.ord100.docno INNER JOIN
dbo.inv100 ON dbo.ord110.part = dbo.inv100.part CROSS JOIN
dbo.soho100
asdmeimei 2010-04-08
  • 打赏
  • 举报
回复
主要是查询ord110下的数据。
1.区域名称 soho100.zone,
2.楼盘名称 soho100.buildingname,
1、2可能没有数据的,1、2是根据ord110中的cust查询的,

唉,我都说不明白。天啊
htl258_Tony 2010-04-08
  • 打赏
  • 举报
回复
把你的代码贴成可以复制的那种.好改.
asdmeimei 2010-04-08
  • 打赏
  • 举报
回复
ord110中只有13条数据,可是如图这样查询却查出52条数据。完全不正确呀。

22,294

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧