需要一些帮助来设计SQL。不幸的是,tsql的版本是我不太熟悉的SybaseASE,在MS SQL中,我会在子查询中使用诸如RANK()或ROW_NUMBER()之类的窗口函数,并加入到这些结果中……
这就是我要解决的问题
java.lang.NoClassDefFoundError: Could not initialize class com.company.cooperate.integracaosoftwareterceiro.server.AdiantamentoDocument
at com.company.cooperate.integracaosoftwareterceiro.server.AdiantamentoDocument$Factory.newInstance(AdiantamentoDocument.java:3036)
at com.company.cooperate.integracaosoftwareterceiro.server.enviocadastro.xml.PopuladorXmlAdiantamento.build(PopuladorXmlAdiantamento.java:60)
我想为每个ID返回1行,并且如果ID具有应显示的类型'A'记录,如果它具有不同的类型,则没关系,但不能为null(可以做一些任意操作)排序,例如使用alpha来区分“其他”返回值类型的优先级)
TABLE A
Id
1
2
3
TABLE B
Id,Type
1,A
1,B
1,C
2,A
2,B
3,A
3,C
4,B
4,C
常规左连接(ON A.id = B.id和B.type ='A')ALMOST返回我要查找的内容,但是当我想要“下一个可用”类型时,该类型返回null。
答案 0 :(得分:0)
您可以在子查询(FirstTypeResult)上使用INNER JOIN,该查询将返回每个ID的最小类型。 例如:
SELECT TABLEA.[Id], FirstTypeResult.[Type]
FROM TABLEA
JOIN (
SELECT [Id], Min([Type]) As [Type]
FROM TABLEB
GROUP BY [Id]
) FirstTypeResult ON FirstTypeResult.[Id] = TABLEA.[Id]