Sql server SQL正在尝试融合2查询

Sql server SQL正在尝试融合2查询,sql-server,Sql Server,我有两个问题 select CONVERT(date, en_cours.date),COUNT(*) encours from en_cours group by CONVERT(date, en_cours.date) order by CONVERT(date, en_cours.date) asc select CONVERT(date, clos.date),COUNT(*) clos from clos group by CONVERT(date, clos.d

我有两个问题

  select  CONVERT(date, en_cours.date),COUNT(*) encours from en_cours  group by  CONVERT(date, en_cours.date) order by CONVERT(date, en_cours.date) asc

  select  CONVERT(date, clos.date),COUNT(*) clos from clos  group by  CONVERT(date, clos.date) order by CONVERT(date, clos.date) asc
第一次返回:

B|1
C|1
F|20
第二个:

A|4
B|8
C|7
D|1
E|9
F|10
我正在尝试融合这2个查询,使其类似:

A|4|NULL
B|8|1
C|7|1
D|1|NULL
E|9|NULL
F|10|20
但当我这么做的时候,它被赋予了不同的价值

  select  CONVERT(date, clos.date),COUNT(clos.ticket_cp),COUNT(en_cours.ticket_cp)from clos left join en_cours on CONVERT(date, clos.date) = CONVERT(date, en_cours.date)   group by  CONVERT(date, clos.date) order by CONVERT(date, clos.date) asc

使用直接数据库调用的场景有点脆弱,因为如果有任何数据库更改,则必须等待存储中的发布时间来更改查询。
但是对于您的场景,请尝试包含System.Data以与sql命令集成。

使用直接数据库调用的场景有点脆弱,因为如果您有任何数据库更改,您将不得不等待存储中的发布时间来更改查询。
但对于您的场景,请尝试包含System.Data以与sql命令集成。

将每个查询包装在CTE中并加入它们:

with 
  cte1 as (
    select CONVERT(date, en_cours.date) date1, COUNT(*) encours 
    from en_cours  
    group by CONVERT(date, en_cours.date) 
  )  
  cte2 as (
    select CONVERT(date, clos.date) date2, COUNT(*) clos 
    from clos  
    group by CONVERT(date, clos.date) 
  )
select c1.date1, c1.encours, c2.clos
from cte1 c1 left join cte2 c2 
on c2.date2 = c1.date1
order by c1.date1 asc 

如果第二个查询可能包含第一个查询中不存在的日期,请将
左连接
更改为
完全外部连接

将每个查询包装在CTE中并连接:

with 
  cte1 as (
    select CONVERT(date, en_cours.date) date1, COUNT(*) encours 
    from en_cours  
    group by CONVERT(date, en_cours.date) 
  )  
  cte2 as (
    select CONVERT(date, clos.date) date2, COUNT(*) clos 
    from clos  
    group by CONVERT(date, clos.date) 
  )
select c1.date1, c1.encours, c2.clos
from cte1 c1 left join cte2 c2 
on c2.date2 = c1.date1
order by c1.date1 asc 

如果第二次查询可能包含第一次查询中不存在的日期,请将
左联接更改为
完全外部联接。

您面临的错误是什么!在(SqlDataReader,SqlCommand)编译代码下面有一条红线,您将收到关于该代码的错误。找不到类型或命名空间名称“SqlCommand”(您是否缺少using指令或程序集引用?)您仍然可以帮助我吗,我有另一个错误您面临的错误是什么!(SqlDataReader,SqlCommand)编译代码下面有一条红线,您将收到有关该代码的错误。找不到类型或命名空间名称“SqlCommand”(您是否缺少using指令或程序集引用?)您仍然可以帮助我吗,我有另一个错误