我有一个回显特定日期之前的所有行的查询。
SELECT MAX(h.date), h.url
FROM HISTORY h
WHERE h.uid = '19'
AND h.date < (SELECT MAX(t.date)
FROM History t
WHERE t.url = 'canabalt.com'
AND t.uid = '19')
GROUP BY h.url
ORD
我希望能够设置一个字段来回答“对于此记录中的值,该值是否满足另一个表中的某些条件?”我想尝试一下带有exists的case-when,但是Teradata (我的数据库管理系统)不喜欢它。有什么建议吗?
select foo,
(case when exists (select x.foo
from somedb x
where x.bar > 0)
then '1' else '0' end) as MyFlag
from mydb
我试图从一个表中获取记录的数量,但只有当日期是一个月的最后一天时。我正在连接到teradata,并尝试以下内容:
PROC SQL;
CREATE TABLE A AS SELECT DISTINCT DATE, COUNT(*)
FROM TERADATA_LIB.SOME_TABLE
WHERE DATE = intnx('month', DATE,0, 'E');
QUIT;
但是很明显,intx函数在PROC SQL内部是无效的。
不然我怎么能完成这件事?
谢谢。
我正在执行一个查询,该查询在where子句中有多个列,而where子句有多个值。我知道在SQL中,您可以使用in条件来满足并获得正确的输出。在teradata中的方法是什么?
我在Oracle中的代码如下所示:
select td.country_code,td.phone_num
from telephone_directory td
where (td.country_code, td.phone_num) in ((91,1234567890),(44,1020304050),(1,998877446655))
这将打印出确切的结果,即3行
我在teradata中的查询如下所示
se
以下查询可以针对Teradata进行优化吗?
我们需要来自小表A的所有记录,以及来自大表B的所有与非唯一键匹配的相应记录
或者,换句话说:除了B中在A中没有匹配项的所有内容。
也许是一些带有连接的东西?或者Subselect是一个不相关的查询,这也适用于Teradata吗?
SELECT a.nonunique
, a.colX
FROM small_tab a
UNION ALL
SELECT b.nonunique
, b.colY
FROM large_tab b
WHERE EXISTS (
SELECT 1
我有一个时间戳字段,它已经存储为Teradata中的stored。 原始字段内容如下:'2018-01-30 21:19:20.000‘。 我需要把它带到'YYYYMMDD‘格式的日期字段,所以我想我需要先把它带到实际的时间戳,然后再把它带到日期。 所以我可以用这个把它转换成实际的时间戳。 cast(CAST(time_stamp AS TIMESTAMP(6) FORMAT 'YYYY-MM-DD-HH.MI.SS.S(6)') as Date FORMAT 'YYYYMMDD') ..then I get a value in format
我可以在计算日期字段上执行WHERE操作吗?
我有一个查找字段,它在SQL中写得很糟糕,不幸的是我不能更改它。但基本上它将日期存储为字符,如“2010年7月”或“2009年6月”(以及其他非日期数据)。我想首先提取日期(我使用了LIKE操作符),然后根据日期范围提取数据。
SELECT
BusinessUnit,
Lookup,
ReleaseDate
FROM
(
SELECT TOP 10
LookupColumn As Lookup,
BU as BusinessUnit,
CONVERT(
如何在Teradata中编写日期的where子句筛选器?我的目标是确保每次代码在任何一年中运行时,都会获取前一年7月至今年6月的最新数据。我已经在Oracle sql中创建了过滤器。我只需要把它转换成Teradata。
select *
from C.Data DM
Where
DM.Dateofdata between
To_Date (‘01-07-‘ || To_Char(Extract(Year from SysDate) -1), ‘DD-MM-YYYY’)
and
To_Date(‘30-06-‘ || To_Char(Extract(Year from SysDate))
如何在Teradata的WHERE子句中将包含dd.mm.yyyy格式的日期的varchar值转换为日期格式'yyyy-mm-dd‘?需要编写类似下面这样的代码:
SELECT * from TABLE
WHERE <some operations with VARCHAR variable containing date> between '2015-06-01' and '2017-12-31'
我有一个有日期栏的表,其中日期以这种格式更新- 11/21/2022。
如何使用Teradata中的date列获得过去15天的结果?看起来需要在where子句中更改日期格式。
我使用的是下面的查询,它不适用于这种格式。
select *
from table_A
WHERE date BETWEEN (CURRENT_DATE - INTERVAL '30' DAY)
AND CURRENT_DATE
这没有给出任何结果。
我使用SAS通过与TeraData的连接检索数据(原始代码是用TeraData编写的,并复制到这样的SAS平台上。但我得到了以下错误:
**) WITH DATA UNIQUE PRIMARY INDEX (x_account_number)
____
22
76
ERROR 22-322: Syntax error, expecting one of the following: ;, (, ',', ANSIMISS, CROSS, EXCEPT, FULL, GR
我们正在尝试将值作为参数从报表传递到teradata视图。如何将多个值传递给teradata视图?
AND (v_fact_xyz in (?) or 'ALL' in (?))
这行代码现在是在哪里写的?可以是单个value('Abd, EFG(ORM)')或类似下面这样的多个值
报告在传递单个参数的情况下工作正常,但在传递多个值时抛出错误
.net data provider for teradata 110083 error.
A Null has been specified as the value for a parameter
我们正在将数据从Server迁移到Teradata,而我无法将相同的代码从Server复制到Teradata。
描述:我想在从Rstart和Rend收到的日期之间生成报告,基本上为期6个月(1月1日至6月和7月2日至12月)。为此,我需要将日期存储在两个变量(Rstart,Rend)中,以便在这两个日期之间获取记录。
Server代码
DECLARE @REnd Date;
DECLARE @RStart Date;
SET @REnd = (SELECT MAX(CalendarDate) AS @REnd
FROM Table1
W
如何在Teradata中编写查询,以便如果字段Cont_Num具有不同数据格式( 'MM/DD/YYYY‘和'MM-DD-YYYY')重复项,则查询应仅返回日期格式为’MM/DD/YYYY‘的字段,但如果Cont_Num没有重复项且存在的日期格式仅为'MM-DD-YYYY',则它应返回以下数据的字段示例 SELECT Cont_Num,FILL_DATE,
FROM USS_LOAD_LOG_TABLES.Members
WHERE Cont_Num IN (
1807369967,
1807453269,
1916796684,
2015276
我在SQL方面非常初级,并试图在Teradata中的代码下面自动化我的日期参数:
SELECT
POST_DATE_YR,
POST_DATE_MN,
SERV_NAME,
MARKET_NAME,
COUNTRY_NAME
FROM
MY_TABLE
WHERE
CASE WHEN (EXTRACT(MONTH FROM CURRENT_DATE)+6)<=12
THEN (POST_DATE_YR = '2022' AND POST_DATE_MN Between EXTRACT(MONTH FROM CURRENT_DATE) AND EXTRACT
我想连接一个包含WITH子句的子查询/派生表( WITH子句是过滤ROW_NUMBER() = 1所必需的)。在Teradata中,类似的东西可以很好地工作,但是Teradata使用QUALIFY ROW_NUMBER() = 1而不是WITH子句。
以下是我在此连接中的尝试:
-- want to join row with max StartDate on JobModelID
INNER JOIN (
WITH AllRuns AS (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY JobModelID
我有一个数据查询,在该查询中,我试图以yyyymmdd (20160201)格式从特定日期获取周号。我们有一个日历表(不是teradata1,因为计算周数略有不同),它允许您加入日期并导出结果。
当我使用静态日期运行查询时,下面的示例运行得很好
FROM table_main AL1
JOIN cal_table cal
ON AL1.run_date = cal.cal_dateyyyymmdd
WHERE AL1.run_date >= 20160201
AND AL1.run_date < 20160220
当我试图把这个声明概括到前一个星期
FROM table_m
我正在创建一个从teradata中提取数据的查询,它将在tableau中使用,我需要查询的哪一部分来修复它? 我在Teradata sql asisstant中尝试过这个查询,它是有效的,但是当我移动到tableau时,它总是以错误ORDER BY结束,子查询中不允许这样做 下面是teradata sql查询: Select
ChannelType,Group,
LevelType,
EXTRACT(YEAR From CDate) as KYear,
EXTRACT(MOnth From CDate) as KMonth,
Case
有一个Teradata SQL UNION查询,需要知道如何从UNION第一部分中的日期在UNION查询第二部分中的日期之前的两个表中提取数据。示例:
Select
name1,date1
from table1
UNION
Select
name2,date2
from table2
where date2 < date1
希望只看到date2在date1之前的记录。这只是我需要从我的数据中检索的一个示例。
从临床表中选择Pat_Name、Provider、Clinic_Encounter_Date联合Pat_Name、Provider、Hosp_Encounter_Date从医院表中
我正在尝试使用以下代码使用order by从Aster Teradata中的一个表中获取样本数据:
SELECT "col"
FROM (SELECT "col",
Row_number()
OVER (
ORDER BY 1) AS RANK
FROM "nisha_test"."test_table") a
WHERE rank <= 10000
我想在不使用order by的情况