以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求一个SQL语句  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=48885)

--  作者:e-png
--  发布时间:2014/4/8 13:27:00
--  求一个SQL语句


图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看

谢谢·!


--  作者:e-png
--  发布时间:2014/4/8 13:28:00
--  
用狐表我会弄,想学点sql语句··········
--  作者:jspta
--  发布时间:2014/4/8 13:50:00
--  
大概是这样,

Select a.编码,a.列1,b.列2 from a left join (select distinct 编码,列1,列2 from a where 列2 not null or 列2 <> \'\') as b on a.编码 = b.编码 and a.列1 = b.列1


[此贴子已经被作者于2014-4-8 13:50:52编辑过]

--  作者:有点甜
--  发布时间:2014/4/8 13:52:00
--  
 select 编码, 列1, (select top 1 列2 from {表A} as b where b.编码 = a.编码 and b.列1 = a.列1 and a.列2 is not null) as 列2 from {表A} as a
[此贴子已经被作者于2014-4-8 13:51:53编辑过]

--  作者:don
--  发布时间:2014/4/8 14:40:00
--  
狐表与SQL结合方法:

Dim s1,sql As String
Dim Arys As List(Of String())
Arys = DataTables("原表").SQLGetValues("列B|编码|列A","列B > \'\'")
s1=" Union All Select 编码,列A,\'T0\' As 列B From{原表} Where 编码 = \'T1\' and 列A =\'T2\'"

For Each Ary As String() In Arys
    sql+ = s1.Replace("T0",Ary(0)).Replace("T1",Ary(1)).Replace("T2",Ary(2))
Next

If SQL > "" Then
    Output.show(SQL.Substring(11))
End If

--  作者:e-png
--  发布时间:2014/4/8 16:12:00
--  

3楼、5楼正确、4楼代码【列2】没有显示任何值(估计是a表还没有形成)。

 

我需要的是3楼纯SQL语句的。

 

谢谢三位老师了。。。


--  作者:有点甜
--  发布时间:2014/4/8 16:19:00
--  

 哦,写错鸟,不过还是用连接查询好一点

 

select 编码, 列1, (select top 1 列2 from {表A} as b where b.编码 = a.编码 and b.列1 = a.列1 and b.列2 > \'\') as 列2 from {表A} as a


--  作者:jspta
--  发布时间:2014/4/8 16:19:00
--  
select 编码, 列1, (select top 1 列2 from {表A} as b where b.编码 = a.编码 and b.列1 = a.列1 and a.列2 is not null order by 列2 desc) as 列2 from {表A} as a
需要排序保证第一个不是空的。

--  作者:blackzhu
--  发布时间:2014/4/8 16:26:00
--  
don老大 真是出神入化
--  作者:e-png
--  发布时间:2014/4/8 16:41:00
--  

7楼有点甜:ok了·······

8楼的:order by 多余了吧,不是有“列2 is not null” 吗

 

再次谢谢