相关疑难解决方法(0)

如何生成sysdate-30和sysdate + 30之间所有日期的列表?

目的和我迄今为止所做的一切

我正在尝试创建一个检查缺少的人工交易的视图.该视图将被提供给Crystal报表.

在这种情况下,视图应该采用sysdate + 30和sysdate -30之间的所有日期,然后应该为每个日期的活动员工留下外部联接所有人工记录.然后,它计算每个员工每个日期的人工交易数量.

这将传递给Crystal Report,Crystal Report将根据特定日期范围(视图在+/- 30范围内)进行过滤.从那里,Crystal中每位员工的总计数将总计,员工将显示零交易.

问题

在没有吐出每个日期的列表的情况下,最初,我正在为每个日期使用人工交易,但有些日期没有任何计数.这些人显示空交易日期为零小时.这表明他们在整个期间都没有收费,这是有道理的.

但是,当Crystal对该数据进行过滤并选择范围时,我相信它会遗漏这些空值,因此不允许我显示没有时间提交的所有人.

问题

有没有办法在视图中执行"选择(sysdate + 30)和(sysdate-30)之间的每个日期",以便我可以使用它来比较所有时间?

SQL(供参考)

SELECT QUERY.LABORRECLABORCODE
       , QUERY.LABORRECEMPLOYEENUM
       , QUERY.PERSONRECDISPLAYNAME
       , QUERY.TRANSSTARTDATE
       , COUNT(TRANSROWSTAMP) AS ROWCOUNT
FROM   (SELECT *
        FROM  (SELECT LABOR.LABORCODE      AS LABORRECLABORCODE
                      , LABOR.LA20         AS LABORRECEMPLOYEENUM
                      , PERSON.DISPLAYNAME AS PERSONRECDISPLAYNAME
               FROM   LABOR
                      LEFT OUTER JOIN PERSON
                        ON ( LABOR.LABORCODE = PERSON.PERSONID )
               WHERE  LABOR.STATUS = 'ACTIVE'
                  AND LABOR.LA20 IS NOT NULL
                  AND PERSON.DISPLAYNAME IS NOT NULL
                  AND LOWER(PERSON.DISPLAYNAME) NOT LIKE '%kimball%'
                  AND LOWER(PERSON.DISPLAYNAME) NOT …
Run Code Online (Sandbox Code Playgroud)

sql oracle gaps-and-islands

6
推荐指数
1
解决办法
5390
查看次数

生成两个日期之间的日期

我需要生成两个给定日期之间的所有日期.只要只有一个日期范围,这样就可以正常工作.但是,如果我有多个日期范围,则此解决方案不起作用.我在这里以及在asktom上搜索过,但无法找到相关的指针/解决方案.

我使用all_objects和CONNECT BY ROWNUM尝试了两种解决方案,但没有运气.这是问题陈述:sqlfiddle

输入

ID  START_DATE      END_DATE 
101 April, 01 2013  April, 10 2013 
102   May, 10 2013    May, 12 2013
Run Code Online (Sandbox Code Playgroud)

产量

ID  Dates
101 April, 01 2013 
101 April, 02 2013  
101 April, 03 2013  
101 April, 04 2013  
101 April, 05 2013  
101 April, 06 2013  
101 April, 07 2013  
101 April, 08 2013  
101 April, 09 2013  
101 April, 10 2013  
102   May, 10 2013  
102   May, 11 2013  
102   May, 12 2013
Run Code Online (Sandbox Code Playgroud)

sql oracle datetime

6
推荐指数
1
解决办法
7444
查看次数

您始终在杀手级应用中使用的数据库表/字段

我希望在这里获得一些集体经验,那么您在数据库设计中总是包含什么(如果有的话)实用程序表或公共字段?

一个例子是我总是包含一个App_Errors表来存储任何未捕获的异常信息,以及一个App_Audit存储所有编辑信息的表.

我(在我自己的脑海中)提出了包括RecordCreatedDateRecordLastEditedDate在每个数据表上的好处,但没有得出关于信息是否真的有用的任何结论.

提出更多方向的问题 - 我目前的重点是全球可访问的Web应用程序(想想社交网络).

TA!

database-design web-applications

5
推荐指数
2
解决办法
429
查看次数

如何在Oracle查询中的两个给定日期之间选择日期?

如何在Oracle查询中的两个给定日期之间选择日期?

oracle

5
推荐指数
3
解决办法
5万
查看次数

查询将给出两个日期范围之间的日期列表

我的问题类似于以下问题:

http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:14582643282111

区别在于我的内部查询返回两条记录,而我有外部查询。

我需要编写类似这样的内部查询,它会给我一个两个日期范围之间的日期列表(我正在尝试这个查询,但它不执行)。

Select * from outerTable where  my_date in
(   
    select to_date(r.REQ_DATE) + rownum -1
     from all_objects, (MY_INNER_QUERY Where ID =100) r 
     where rownum <= to_date(r.DUE_DATE,'dd-mon-yyyy')-to_date(r.REQ_DATE,'dd-mon-yyyy')+1;
)
Run Code Online (Sandbox Code Playgroud)

我的内部查询返回以下 2 行:

Select * from innerTable Where ID =100


    Start date           end date 
    3/19/2013            3/21/2013 
    3/8/2013             3/8/2013
Run Code Online (Sandbox Code Playgroud)

所以我需要内部查询,它将返回以下日期到外部查询:

    3/19/2013
    3/20/2013
    3/21/2013
    3/8/2013
Run Code Online (Sandbox Code Playgroud)

sql oracle oracle11g

4
推荐指数
1
解决办法
9765
查看次数