首页 > 解决方案 > MySQL - 即使结果为零也选择定义的值

问题描述

我有以下查询结果:

在此处输入图像描述

并希望为每个“einfacheWanddicke”设置 B、C 和 D 的值。即使值为零。结果应如下所示:

在此处输入图像描述

到目前为止,查询如下所示:

Select
  tbl_rts_proben.einfacheWanddicke,
  lims.tbl_rts_aufnahmen.bewertungsGruppe As Bewertung,
  Count(tbl_rts_aufnahmen.bewertungsGruppe) As Anzahl
From
  tbl_rts_proben Left Join
  v_auftragsuebersicht_zfp_php_ag_oe On
    v_auftragsuebersicht_zfp_php_ag_oe.`LIMS Nummer` = tbl_rts_proben.limsNummer
  Inner Join
  tbl_rts_aufnahmen On tbl_rts_proben.id = tbl_rts_aufnahmen.probenID Inner Join
  tbl_rts_auswertung On tbl_rts_aufnahmen.id = tbl_rts_auswertung.aufnahmenID
  Inner Join
  tbl_rts_fehler On tbl_rts_fehler.fehlerID = tbl_rts_auswertung.fehlerID
Where
  v_auftragsuebersicht_zfp_php_ag_oe.StatusID = 3 And
  Year(v_auftragsuebersicht_zfp_php_ag_oe.erstellungsdatum) = '2020' And
  tbl_rts_proben.probenArtID = 2
Group By
  tbl_rts_proben.einfacheWanddicke, lims.tbl_rts_aufnahmen.bewertungsGruppe,
  tbl_rts_aufnahmen.bewertungsGruppe
Order By
  Bewertung

有没有办法指定一种数组(B,C,D)?

问题的原因是我的问题是我无法在 C# 中创建缺少数据的堆积柱形图。

标签: c#mysqlarrays

解决方案


您可以使用以下查询在 MySQL 中生成一种“aray”:

select substr('BCD', @i:=@i+1, 1) as AAA from tbl_rts_proben join (select @i := 0) as T where @i < 3;

(tbl_rts_proben 必须至少有 3 行才能获得 3 个结果行)。您可以通过以下方式将此查询用于 JOIN:

select N.*, T.AAA from tbl_rts_proben as N
    join (select substr('BCD', @i:=@i+1, 1) as AAA from new_table1 join (select @i := 0) as T where @i < 3) as T;

但我还无法想象一个请求会给出你上面的结果。但也许这是一个更多努力的问题......


推荐阅读