簡體   English   中英

SQL:每天顯示基於開始日期的聯接數據

[英]SQL: Display joined data on a day to day basis anchored on a start date

也許我的標題有誤導性,但我不確定該如何表達。 我有兩個表,tblL和tblDumpER。 它們基於字段SubjectNumber聯接。 這是一對多(tblL)對多(tblDumpER)的關系。

我需要編寫一個查詢,該查詢將為我的所有主題提供tblDumpER中與tblL中的日期相關聯的值。 這就是說:

SELECT tblL.SubjectNumber, tblDumpER.ER_Q1
FROM tblL
LEFT JOIN tblDumpER ON tblL.SubjectNumber=tblDumpER.SubjectNumber
WHERE tblL.RandDate=tblDumpER.ER_DATE And tblDumpER.ER_Q1 Is Not Null

這很簡單。 我的問題是tblL的RandDate值對於每個主題都不同。 但是,它需要顯示為Day1,因此我可以將tblDumpER.ER_Q1作為每個主題的Day1。 然后,我需要RandDate + 1作為Day2,依此類推,直到我擊空或Day84。 愚蠢的解決方案是編寫84個查詢。 這顯然是不切實際的。 任何建議將不勝感激!

到目前為止,我很感謝您的回答,但我認為我沒有正確解釋這一點,因此這里是一些示例數據:

主題編號日期

1001 1/1/2013
1002 1/8/2013
1003 1/15/2013

主題編號ER_DATE ER_Q1

1001 2013年1月1日5
1001 1/2/2013 6
1001 1/3/2013 2
1002 1/8/2013 1
1002 1/9/2013 10
1002 1/10/2013 8
1003 1/15/2013 7
1003 1/16/2013 4
1003 1/17/2013 3

所需的結果:(第1天= RandDate,第2天= RandDate + 1,第3天= RandDate + 2)

主題編號Day1_ER_Q1 Day2_ER_Q1 Day3_ER_Q1

1001 5 6 2
1002 1 10 8
1003 7 4 3

然后將這些數據繪制在圖形上,其中X軸為Day#,Y軸為ER_Q1

我將分兩步執行此操作:

  • 創建一個查詢,以獲取每個SubjectNumber的MIN日期
  • 將這個查詢與您現有的查詢聯系起來,因此您可以在MIN日期和當前記錄的日期上執行DATEDIFF計算。

我不能完全確定您需要什么,但是日歷表可能會有所幫助。 只需創建一個包含一年中所有日期的本地表,然后使用該表來加入日期?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM