PostgreSQL上有一个错误,它给我的一个select语句.我在网上搜索了一个答案然后空手而归.另一个问题给出的答案不符合我的问题.
Run Code Online (Sandbox Code Playgroud)ERROR: failed to find conversion function from unknown to text ********** Error ********** ERROR: failed to find conversion function from unknown to text SQL state: XX000
我的查询看起来像这样:
Select *
from (select 'string' as Rowname, Data
From table)
Union all
(select 'string2' as Rowname, Data
From table)
Run Code Online (Sandbox Code Playgroud)
这样做的目的是指定行在一个点上的位置.该字符串是行的名称.这是我想要的输出:
Rowname Data
string 53
string2 87
Run Code Online (Sandbox Code Playgroud)
有没有办法解决这个错误?
我有一个小查询,并在其旁边放置另一个小查询的联合.但是,联合中有一个语法错误.
Select <column1>
,<column2>
From <Table1>
<Some joins in there>
Where <conditions>
group by <column2>
order by <column2>
union
select <column2>
,<column3>
,<column4>
From <Table2>
<Some more joins here>
Where <conditions>
group by <column2>
order by <column2>
Run Code Online (Sandbox Code Playgroud)
这是我收到的错误
ERROR: Syntax error at or near 'union'
Run Code Online (Sandbox Code Playgroud) 我试图根据某个方面从不同的位置进行选择.可以CASE
在FROM
条款中加上一个陈述吗?
这就是我想要做的
FROM (Case WHEN @location = 'location A' THEN stockA
WHEN @location = 'location B' then stockB end) ss
Run Code Online (Sandbox Code Playgroud)
如果我没有选择多个地点,StockA就是我想要的.SS是别名.
我将如何按月获得 date_trunc?会是这样吗?
SELECT date_trunc('month', l_date) month
FROM this_table
GROUP BY month
Run Code Online (Sandbox Code Playgroud)
l_date 是我要从中提取日期的列。
我想做一份报告,告诉所有在过去75天左右没有被呼叫过的客户.我的专栏如下.
Customer# Customer_Name Phone_Number Call_Date Salesman
通话日期会提取客户被叫方的日期.
这是我当前的查询.
select customer_no
,Customer_name
,Phone_number
,max(Call_Date) as Call_date
,Salesman
from salescalls
where call_date <= current_date - 75
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是它拉动每个客户并使用他们最后一次调用75天或更多天.
例如,当最后一个通话日期是6/4/14时,它会提取数字,并将通话日期列为11/10/13.
它不应该列出在过去75天内被调用的客户.所以为了防止这种情况,我试图在where子句中这样做.
Where max(call_date) <= current_date - 75
Run Code Online (Sandbox Code Playgroud)
但这只是给我一个错误:
aggregates not allowed in WHERE clause
Run Code Online (Sandbox Code Playgroud) 我试图在 select 语句中划分两列,然后将商四舍五入到小数点后 4 位。
select round(round(sum(case when acct_no = '2999'
and date between '1/1/14' and current_date then amount end)::numeric, 4)::float
/ round(sum(case when acct_no = '3989'
and date between '1/1/14' and current_date then amount end)::numeric, 4)::numeric, 4) column
from table
Run Code Online (Sandbox Code Playgroud)
查询的其余部分将保存多个日期,因此其中的日期应该是必要的。
它给出的错误:
错误:函数 round(双精度,整数)不存在
这是在 PostgreSQL 中尝试过的。
我正在尝试使用barby
gem
我安装的那个,但是当我这样做时,它给了我这个错误。
LoadError cannot load such file -- barby
Run Code Online (Sandbox Code Playgroud)
这是我的控制器中的 require 方法。
require 'barby'
require 'barby/barcode/ean_13'
require 'barby/outputter/ascii_outputter'
require 'barby/outputter/html_outputter'
class PalletsController < ApplicationController
-snip-
end
Run Code Online (Sandbox Code Playgroud)
这是我的 gemfile 中的 gem。
gem 'barby'
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激。