SQL查询如果有更多值,请先选择

SQL查询如果有更多值,请先选择,sql,double,rows,Sql,Double,Rows,我有下面的sql查询,值PMLB.LAGERORT可能有多个值,然后该行会显示多次。我阅读并尝试了交叉应用、限制和分组的不同方法,但都没有奏效。如果我尝试按PFSP.KOMPONENTEN_ARTIKEL_NR进行分组,则错误为 da Auswahlliste ungültig的KD_VORGANGS_NR-Spalte酒店 Klausel在一个集合函数中没有出现,在der组中也没有出现 崇拜者 选择 PFSP.KOMPONENTEN_ARTIKEL_编号, PFAK.KD_VORGANGS_N

我有下面的sql查询,值
PMLB.LAGERORT
可能有多个值,然后该行会显示多次。我阅读并尝试了交叉应用、限制和分组的不同方法,但都没有奏效。如果我尝试按PFSP.KOMPONENTEN_ARTIKEL_NR进行分组,则错误为

da Auswahlliste ungültig的KD_VORGANGS_NR-Spalte酒店 Klausel在一个集合函数中没有出现,在der组中也没有出现 崇拜者

选择
PFSP.KOMPONENTEN_ARTIKEL_编号,
PFAK.KD_VORGANGS_NR,
PFSP.Bezeichung_1,
PFSP.Bezeichung_2,
PFAK.Zeichnugs_DIN_NR,
PFAK.Bezeichung_1,
普法克·奥夫特拉森德,
PFSP.BESCHAFFUNGSKENNER,
PFSP.Bestandskoto_n,
PFSP.Bereittellungsart,
PFSP.EINKAUFS_KZ,
PEKP.BESTAETIGTER_term,
RFSP.DECKER_段,
PFSP.ENTNAHME\U TERMIN\U GRE,
PEKP.BESTAETIGUNGS_基准面,
PFSP.RUECKMELDE_状态,
PFSP.Zeichnugs_DIN_NR,
PFSP.ENTNAHME_MENGE,
拉格洛特,
PEKP.Voru艺术,
PFSP.ENTNAHME_MENGE_IST
从…起
普法克
左外连接PFSP
ON(PFAK.RUECKMELDE_NR=PFSP.RUECKMELDE_NR)
左外连接PEKP
开启(PFSP.BESTELL\u NR=PEKP.VORGANGS\u NR)
和(PFSP.BESTELL位置编号=PEKP.VORGANGS位置编号)
左外连接RFSP
ON(PFSP.RUECKMELDE_n r=RFSP.RUECKMELDE_n r)
和(PFSP.RUECKMELDE_POSITIONS_NR=RFSP.RUECKMELDE_POSITIONS_NR)
左外连接PMLB
关于PFSP.KOMPONENTEN_ARTIKEL_n r=PMLB.ARTIKEL_n r
哪里
PFAK.KD_VORGANGS_NR=N'250-001969'
和PFSP.BESCHAFFUNGSKENNER=N'F'
而不是(
PFSP.Bestandskoto_NR=N'311000'
或PFSP.Bestandskoto_NR=N'312000'
或PFSP.Bestandskoto_NR=N'319000'
) 
和PFSP.RUECKMELDE_8
及(
PFSP.EINKAUFS_KZ=2
和PEKP.VORGANGS_ART=N'BE'
或PFSP.EINKAUFS_KZ2
)

正确格式化的SQL非常容易阅读和编写。让它更容易帮助您:(1)我格式化了您的(大)查询。格式化是一件重要的事情,它极大地提高了SQL代码的可读性。下一次发帖前请考虑一下。(2) 在没有太多关于底层表结构的信息的情况下抛出这个大查询,您无法真正期望得到合理的答案。我建议您将问题缩小到可以用较少代码描述的范围,并提供相关的示例数据和预期结果。很抱歉格式设置不正确,我刚刚从crystal report复制了一些内容。下次将使用最少的示例。row_number()看起来不错,我摆弄了一个圆,我非常接近,我想我能够通过自定义查询使它工作。但不能将其用于crystal report,因为它会生成查询。希望有一种方法可以简单地在查询后面添加一些代码,但是编辑整个查询结构不是一个选项。无论如何,非常感谢你!
SELECT 
    PFSP.KOMPONENTEN_ARTIKEL_NR, 
    PFAK.KD_VORGANGS_NR, 
    PFSP.BEZEICHNUNG_1, 
    PFSP.BEZEICHNUNG_2, 
    PFAK.ZEICHNUNGS_DIN_NR, 
    PFAK.BEZEICHNUNG_1, 
    PFAK.AUFTRAGSENDE, 
    PFSP.BESCHAFFUNGSKENNER, 
    PFSP.BESTANDSKONTO_NR, 
    PFSP.BEREITSTELLUNGSART, 
    PFSP.EINKAUFS_KZ, 
    PEKP.BESTAETIGTER_TERMIN, 
    RFSP.DECKER_SEGMENT, 
    PFSP.ENTNAHME_TERMIN_GRE, 
    PEKP.BESTAETIGUNGS_DATUM, 
    PFSP.RUECKMELDE_STATUS, 
    PFSP.ZEICHNUNGS_DIN_NR, 
    PFSP.ENTNAHME_MENGE, 
    PMLB.LAGERORT, 
    PEKP.VORGANGS_ART, 
    PFSP.ENTNAHME_MENGE_IST
FROM   
    PFAK 
    LEFT OUTER JOIN PFSP 
        ON (PFAK.RUECKMELDE_NR=PFSP.RUECKMELDE_NR) 
    LEFT OUTER JOIN PEKP 
        ON (PFSP.BESTELL_NR=PEKP.VORGANGS_NR) 
        AND (PFSP.BESTELL_POS_NR=PEKP.VORGANGS_POS_NR) 
    LEFT OUTER JOIN RFSP 
        ON (PFSP.RUECKMELDE_NR=RFSP.RUECKMELDE_NR) 
        AND (PFSP.RUECKMELDE_POSITIONS_NR=RFSP.RUECKMELDE_POSITIONS_NR) 
    LEFT OUTER JOIN PMLB 
        ON PFSP.KOMPONENTEN_ARTIKEL_NR=PMLB.ARTIKEL_NR
WHERE  
    PFAK.KD_VORGANGS_NR=N'250-001969' 
    AND PFSP.BESCHAFFUNGSKENNER=N'F' 
    AND  NOT (
        PFSP.BESTANDSKONTO_NR=N'311000' 
        OR PFSP.BESTANDSKONTO_NR=N'312000' 
        OR PFSP.BESTANDSKONTO_NR=N'319000'
    ) 
    AND PFSP.RUECKMELDE_STATUS<>8 
    AND (
        PFSP.EINKAUFS_KZ=2 
        AND PEKP.VORGANGS_ART=N'BE' 
        OR PFSP.EINKAUFS_KZ<>2
    )