SQL查询中的歧义列名称错误

时间:2016-04-17 15:30:07

标签: sql sqlite

我有两个查询。 第一个是:

dyplr

第一个查询的输出是

第二个查询是:

library(dplyr)
library(tidyr)
# take your data frame
df %>% 
  # gather into long format
  gather(Q_column, value, -quarter, -endcolumn) %>% 
  # extract number from the column name
  extract(Q_column, "column", "Q(\\d+)") %>% 
  # group by the quarter and end column for calculations
  group_by(quarter, endcolumn) %>% 
  # summarize up to the desired column
  summarize(t0 = sum(value[column <= endcolumn - 2])) 

第二个查询的输出是:

实际上我正在绘制图形所以我需要将这两个查询合并为一个。我得到的解决方案是:

SELECT hardware, SUM(Quantity) FROM request_1v2 where date between "2016-03-12" AND "2016-03-14" group by hardware

解决方案查询的输出:

这是错的!

我需要的实际输出是: -

我不知道该怎么做。谁能帮我。? 有人建议我把你的查询写成: -

SELECT hardware, SUM(Quantity) FROM request_1v2 where date between "2016-03-12" AND "2016-03-12" group by hardware

但它会出错&#34; 模糊列名:硬件&#34;

请帮助我并将查询写为您的答案谢谢。

如果您需要表格结构,请执行以下操作:

1 个答案:

答案 0 :(得分:1)

只需使用CASE,事情是你的日期重叠,你可能想要更改它们。你的第三个查询创建一个笛卡儿JOIN,因为你没有JOIN条件。

SELECT hardware, 
SUM(CASE WHEN date between "2016-03-12" AND "2016-03-14" THEN Quantity ELSE 0 END),
SUM(CASE WHEN date between "2016-03-12" AND "2016-03-12" THEN Quantity ELSE 0 END)
 FROM request_1v2 
group by hardware