|
|
|
C# WinApp ช่วยคิด SQL ชุดนี้หน่อยครับ ว่าควรเขียนยังไง |
|
|
|
|
|
|
|
Code (SQL)
SELECT Reagent_List.Reagent_List_ID, Reagent_List.Reagent_ID, Reagent_List.Reagent_List_Name_1, Reagent_List.Formula, Reagent_Type.Reagent_Type_1,
Reagent_Grad.Reagent_Grad_1, Reagent_In.Reagent_In_Date, Reagent_In.Reagent_Ex, Reagent_In.Reagent_In_File_1, Reagent_In.Reagent_In_File_2
FROM Reagent_Grad INNER JOIN
Reagent_List ON Reagent_Grad.Reagent_Grad_ID = Reagent_List.Reagent_Grad_ID INNER JOIN
Reagent_Type ON Reagent_List.Reagent_Type_ID = Reagent_Type.Reagent_Type_ID LEFT OUTER JOIN
Reagent_In ON Reagent_List.Reagent_List_ID = Reagent_In.Reagent_List_ID
WHERE (Reagent_In.Reagent_Using = 1)
Reagent_In.Reagent_Using = true // สารเคมีอยู่ในสถานะใช้งานอยู่
ทาง user ต้องการเงื่อนไขเพิ่มเติมคือ
ในกรณีที่สารเคมีหมดอายุ และ ไม่ได้ถูกใช้งานแล้วให้ ดึงข้อมูล Reagent_In.Reagent_In_Date(วันรับสารล่าสุดมาโชว์แทน)
สรุปว่า ถ้ามีสารเคมี ซัก 50 กว่าตัว(ตาม Reagent_List.Reagent_List_Name_1)
ก็ให้โชว์ทั้งหมด 50 กว่าตัว
โดยเงื่อนว่าให้โชว์ข้อมูลที่ อยู่ในสถานะใช้งานอยู่ หรือ ข้อมูลล่าสุด เพื่อให้มีข้อมูลครบทั้ง 50 กว่าตัว ครับ
Tag : .NET, Win (Windows App), C#, VS 2012 (.NET 4.x)
|
|
|
|
|
|
Date :
2018-04-05 10:59:55 |
By :
lamaka.tor |
View :
1027 |
Reply :
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หรือว่าพอจะมีวิธีที่จะออกแบบตารางใหม่ หรือ เพิ่มตารางใหม่ เพื่อรองรับเงื่อนไขที่ว่าไม๊ครับ
คือ สารเคมี มี 31 รายการ เวลา เราแสดงรายการจะต้องมี 31 แถวตลอด
โดย
เงื่อนไขแรกคือ ในกรณีที่ Reagent_ID หรือรายชื่อสารเคมี นั้นๆ Reagent_Using = 1 หรือ อยู่ในสถาณะใช้งานก็ให้ดึงตัวนั้นมา
หรือหาก Reagent_Using = 0 หมด ก็ให้เลือกตัวล่าสุดมา
เช่น
Cadmium มีทั้งหมด 3 ขวด ก็ให้เลือก ขวดที่ Reagent_Using = 1 มา
หากพบว่า Cadmium 3 ขวดนั้นไม่พบว่า มีขวดที่ Reagent_Using = 1
ให้ดึงขวดที่ใช้งานล่าสุด มา
พูดง่ายๆคือยังไงก็ต้องมี 31 แถว เสมอครับ
ถ้าต้องแก้ไข หรือเพิ่มตาราง ก็ได้ครับ
|
|
|
|
|
Date :
2018-04-05 17:36:47 |
By :
lamaka.tor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
บ่ต้องครับผม แค่นี้กะสามารถ Query ออกได้ครับผม เคยทำ sup query บ่ง่ายมาก แต่มื่อนี้บ่มีเวลาครับ
เตรียมตัวกลับ LA
ประมาณนี้เด้อครับ
select rl.id,(select max(Reagent_In_Date) from Reagent_In s where s.id = rl.id)
from Reagent_List rl
|
|
|
|
|
Date :
2018-04-05 17:45:21 |
By :
บัญดิษฐ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Select case when tin.id is not null then tin.date else
(Select max() .....) end
From tlist
Left join tin on tlist.id=tin.id
And tin.using=1
|
|
|
|
|
Date :
2018-04-05 18:27:02 |
By :
^^ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|