复杂查询SQL

复杂查询SQL,sql,sql-server,Sql,Sql Server,我目前正在处理一个sql查询,在这里我接收三行不同的数据,我真的需要一行中的数据 SELECT substring(D.F1056, patindex('%[^0]%',D.F1056), 10) as Shop_Number, REPLACE(CONVERT(VARCHAR(10), D.F254, 103), '/', '') AS Todays_Date, SDP_TAB.F03 as Rayon, [SDP_TAB].F04 as Famille, CASE WHEN D.F1034

我目前正在处理一个sql查询,在这里我接收三行不同的数据,我真的需要一行中的数据

SELECT
substring(D.F1056, patindex('%[^0]%',D.F1056), 10) as Shop_Number,
REPLACE(CONVERT(VARCHAR(10), D.F254, 103), '/', '') AS Todays_Date,
SDP_TAB.F03  as Rayon,
[SDP_TAB].F04 as Famille,
CASE 
WHEN D.F1034=3 THEN SUM(D.F64) 
                            ELSE 0 
END as Qty_Sold ,
CASE 
WHEN D.F1034=3 THEN convert(DOUBLE PRECISION, SUM(D.F65)*100) * 10
                            ELSE 0 
END as chiffre_daffaire_Caisse,
0 as montant_remisse_caisse,
CASE
WHEN D.F1034=3011 THEN SUM(D.F64) 
WHEN D.F1034=3012 THEN SUM(D.F64) 
                            ELSE 0 
END as Qty_retour,
CASE
WHEN D.F1034=3011 THEN SUM(D.F65) 
WHEN D.F1034=3012 THEN SUM(D.F65) 
                            ELSE 0 
END as Montant_Retour,
0 as Quantity,
CASE
WHEN D.F1034=3102 THEN SUM(D.F64) 
                            ELSE 0 
END as ClientCount,
F1034
FROM 
            [dbo].[RPT_ITM_D] D
            LEFT OUTER JOIN [dbo].[POS_TAB] ON (D.F01=POS_TAB.F01)
            LEFT OUTER JOIN [dbo].SDP_TAB ON (POS_TAB.F04=SDP_TAB.F04)

where 
            D.F1034 IN (3,3012,3011,3102)
            AND
            D.F254 = convert(varchar, getdate(), 101)     
group by D.F1056,D.F254,SDP_TAB.F03,SDP_TAB.F04,D.F1034
我的数据正在填充,如下所示

我有三行,因为我有几个字段F1034的条件

有没有办法获得如下所示的预期结果?试试这个。(对计算列使用max)


我认为你绝对需要告诉我们这三条记录如何变成一条记录的逻辑。看你的例子并不清楚,请考虑编辑你的标签。在你的问题中,我看不到任何c#,mysql或vb.net。@TimBiegeleisen:我想他想“平复”他的结果。也就是说,如果有一个0,它应该被忽略。另外,我想这些行也有某种
SUM
的作用……你能编辑你的帖子来澄清为什么选择这些值的规则吗?从最终图像中,您似乎希望删除重复的行,并且对于除一个值以外的所有值均为0的行,您只希望看到非零值,但对于
F64
中的
7
,情况如何?为什么显示的是这张图片而不是
1
2
?@Atlasmaybe:也许你应该看看这两张图片,看看蒂姆为什么会这样评论。
With  resultData as (

—Put your original query here

 )
Select Shop_Number, Todays_Date,rayon,famille
,max(Qty_Sold) Qty_Sold, max(chiffre_daffaire_Caisse) chiffre_daffaire_Caisse
,max(montant_remisse_caisse) montant_remisse_caisse,max(Qty_retour) Qty_retour,max(Montant_Retour) Montant_Retour
,max(Quantity)Quantity,max(ClientCount) ClientCount,max(F1034) F1034
From resultData 
group by Shop_Number, Todays_Date,rayon,famille