作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个表 T_DONNE,它就是数据导入的类型。没有= ID诽谤 = 标签
NOID LIBELLE
1 WEB
2 FTP
客户:
CODE_CL RS_NOM VILLE TYPE_CLIENT
85000 test La roche 1
85001 azerty Nantes 2
85002 qsdfg Nantes 1
LETTRE_VOIT_FINAL:这就像客户命令的项目
NOID CODE_CLIENT RS_NOM VILLE_EXP FACTURATION DATE_CLOTUR_REEL
1 85000 test La roche 2 2016-01-07 15:02:59
2 85000 test La roche 2 2016-01-07 15:03:59
3 85001 azerty Nantes 2 2016-01-07 15:04:59
我想要的是:
CODE_CLIENT RS_NOM VILLE_EXP LIBELLE TOTAL
85000 test La roche WEB 2
85001 azerty Nantes FTP 1
85002 qsdfg Nantes WEB 0
和 SQL:
SELECT
LETTRE_VOIT_FINAL.CODE_CLIENT
,LETTRE_VOIT_FINAL.RS_NOM
,LETTRE_VOIT_FINAL.VILLE_EXP
,T_DONNE.LIBELLE
,count (LETTRE_VOIT_FINAL.NOID) as TOTAL
FROM LETTRE_VOIT_FINAL
LEFT OUTER JOIN CLIENT ON CLIENT.CODE_CL = LETTRE_VOIT_FINAL.CODE_CLIENT
LEFT JOIN T_DONNE ON T_DONNE.NOID = CLIENT.TYPE_CLIENT
WHERE DATE_CLOTUR_REEL BETWEEN @DateDeb AND @DateFin
and FACTURATION = @FACTURATION
and STATUT_LV = 2
group by CODE_CLIENT,VILLE_EXP,RS_NOM,LIBELLE
它不太有效。它只显示:
CODE_CLIENT RS_NOM VILLE_EXP LIBELLE TOTAL
85000 test La roche WEB 2
85001 azerty Nantes FTP 1
我认为它不起作用,因为 NULL 值和计数函数。
我想列出所有客户并计算他/她订购的元素。我的语法只显示有命令的客户端,我错过了在我的示例中没有命令的客户端是客户端 85002
我也进行了反转,但仍然得到相同的结果:
SELECT
count (LETTRE_VOIT_FINAL.NOID) as TOTLV
,CODE_CL
,VILLE
,[RS_NOM]
,LIBELLE
FROM CLIENT
LEFT JOIN LETTRE_VOIT_FINAL ON CLIENT.CODE_CL = LETTRE_VOIT_FINAL.CODE_CLIENT
LEFT JOIN T_DONNE ON T_DONNE.NOID = CLIENT.TYPE_CLIENT
WHERE DATE_CLOTUR_REEL BETWEEN @DateDeb AND @DateFin
and FACTURATION = @FACTURATION
and STATUT_LV = 2
group by CODE_CL,VILLE,RS_NOM,LIBELLE
@DateDeb 日期时间,@DateFin 日期时间,@FACTURATION int',@DateDeb='2016-01-07 12:00:00',@DateFin='2016-01-07 23:59:59',@FACTURATION =2
最佳答案
从您的预期结果来看,您的值似乎来自 Client 表,但您的查询(和列名)显示您正在尝试从 Lettre_Voit_Final 表中获取它们。我认为这是你最大的问题。从 Client 表开始,您可以加入它 - LEFT OUTER JOIN
以确保您仍然获得客户表中的所有行,即使该行在其他表中不存在也是如此。
SELECT
C.code_client,
C.rs_nom,
C.ville,
D.libelle,
COUNT(*)
FROM
Client C
INNER JOIN T_Donne D ON D.noid = C.type_client
LEFT OUTER JOIN Lettre_Voit_Final LVF ON LVF.code_client = C.code_cl
GROUP BY
C.code_client,
C.rs_nom,
C.ville,
D.libelle
一些其他注意事项...
您的列名称似乎不一致(例如,code_client 与 code_cl)。这确实会减慢开发速度并导致编码中的其他错误。
ville 与 ville_exp 之间可能存在一些重复数据(尽管我不确定)。也许其中一个是“默认”值,另一个是实际值或其他在您的数据库中有意义的值,但只是其他需要注意的事情。
关于SQL LEFT JOIN 和 GROUP BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34656128/
我是一名优秀的程序员,十分优秀!