วิธีที่จะสร้างการสืบค้นให้ invoices ระหว่างวัน(ช่วยต้องการ)

0

คำถาม

ฉันต้องการสร้างการสืบค้นในภาษา sql หา invoices ขึ้นอยู่กับปัจจุบันออกเดท ฉันเป็นเด็กฝึกงานในบริษัทดังนั้นฉันแค่ต้องการจะสร้างตรรกะงไม่จำเป็นการสืบค้น. ใครก็ได้ช่วยผมแปลกนี้เงื่อนไขในภาษา sql(องเกล็ดหิมะ)?

  • ถ้าเป็นวันที่ปัจจุบัน(วันนี้เป็นวัน)ระหว่างวัน 14 และ 27 ของเดือน>>>ได้ invoices จากวัน 14 ตัวปัจจุบันเดือน
  • ถ้าเป็นวันที่ปัจจุบัน(วันนี้เป็นวัน)ระหว่างวัน 28 และ 31 ของเดือน>>>ได้ invoices จากวัน 28 ของปัจจุบันเดือน
  • ถ้าเป็นวันที่ปัจจุบัน(วันนี้เป็นวัน)ระหว่างวัน 1 กับอีก 13 ของเดือน>>>ได้ invoices จากวัน 28 ของเดือนก่อน

ขอบคุณล่วงหน้า!

snowflake-cloud-data-platform sql
2021-11-23 17:55:26
2

คำตอบที่ดีที่สุด

2

ฉันคิดว่างานง่ายสุดของคุณ,clearest ตัวเลือกนี้หากคนขโยงข้างนอกนั่น คุณสามารถทำให้เรื่องนี้เป็นของคุณเลือกและทำงานกับมันออกมาจากที่นั่นหรือวางมันโดยตรงไปที่ไหนเงื่อนไขว่า. อะไรก็ตามที่เหมาะสมกับของคุณกับการค้นหา.

WHERE invoice_date::DATE = (CASE WHEN DAY(current_date) between 14 and 27 then DATE_FROM_PARTS(YEAR(current_date), MONTH(current_date), 14)
                                 WHEN DAY(current_date) between 28 and 31 then DATE_FROM_PARTS(YEAR(current_date), MONTH(current_date), 28)
                                 WHEN DAY(current_date) between 1 and 13  then DATEADD('month', -1, DATE_FROM_PARTS(YEAR(current_date), MONTH(current_date), 28))
                                 END)
2021-11-23 18:04:49
0
select  
   current_date()+1 your_date
   ,dateadd(day,27-(sign(FLOOR(day(your_date)/14,0))*14) 
     ,dateadd(month,sign(FLOOR(day(your_date)/14,0))-1 
     ,date_trunc(month,your_date))) your_result

Revised ทางออกหรอกนะ

การเอาออก inequalities และลดจำนปัญหาของ multiples ของ 14 กันเดือนการปรับเปลี่ยนแทนที่จะเป็นหลายคดีการให้สอบสวน(แพงต้องวิ่งไปที่ปรับขนาด).

enter image description here

2021-12-09 11:27:46

นี่อาจจะทำงานแต่อดรหัสที่ค่อนข้างพูดจากำกวมต่อไปกับฉัน มันยากมากสำหรับฉันที่จะดูตอนนี้และเข้าใจ/คาดการณ์อะไรที่มีค่าคือจะต้องกลับมาเพื่อให้ออกเดท ฉันยังไม่สามารถเห็นว่าทำไมมันจะวิ่งรวดเร็วตั้งแต่มันต้องการจะสร้างเพื่อเปรียบเทียบหาอายุของทั้งหมดของวันมากกว่าแค่คนเดียว
David Garrison

แล้วก็ฉันคิดว่าคุณต้องการตัวกรองของคุณก่อนที่จะวิ่งหนีคน GREATEST. ฉันไม่สามารถเอานี่ไปทำงานอย่างถูกต้องสำหรับบางวันที่
David Garrison

วิ่งเร็วที่ไม่มีกรณีการให้สอบสวนหรือ inequality predicates. คุณถูกต้องของฉันก่อนหน้านี้คำตอบไม่ได้ทดสอบดี-ขออภัยด้วย
Adrian White

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่