 |
|
join 2 view แล้วข้อมูลออกมาเบิ้ลกันรบกวนดูให้หน่อยครับ |
|
 |
|
|
 |
 |
|
ลองเอาข้อมูลมาแสดงหน่อยครับ
|
ประวัติการแก้ไข 2016-12-21 13:01:12
 |
 |
 |
 |
Date :
2016-12-21 12:59:44 |
By :
jaypang |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เอาโค๊ดที่ถูกต้องมาลงครบั statement ที่นำมาลงมันผิด
และเวลาเขียน ใส่ alias ให้ table ด้วยจะแบ่งแยก ฟีลด์ได้ง่าย
เช่น
Code (SQL)
select f1.field1, f2.field2
from dbo.table1 as f1
inner join dbo.table2 as f2
on f1.key1=f2.f1_key
ส่วนที่ออกมาเบิ้ล ก็ต้องดูข้อมูลในตาราง ทำความเข้าใจกับ script ให้ดีๆ
|
 |
 |
 |
 |
Date :
2016-12-21 12:59:45 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมจะจับระหว่าง price กับ qty และ bill
ny1
recbillno price
001 5000
002 1000
002 1050
002 1020
003 5000
003 300
004 400
004 300
005 200
005 150
005 250
ny2
recbillno qty
001 200
002 300
002 150
002 100
003 200
003 150
004 50
004 100
005 150
005 250
005 400
|
 |
 |
 |
 |
Date :
2016-12-21 13:26:31 |
By :
dRufFy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (SQL)
SELECT A.RECBILLNO , B.QTY ,A.PRICE
FROM NY1 A INNER JOIN NY2 B ON A.RECBILLNO = B.RECBILLNO
ORDER BY A.RECBILLNO , B.QTY ,A.PRICE
ต้องการให้ข้อมูลออกมาแบบไหนครับ ?
แบบนี้หรือป่าวครับ ?
recbillno qty price
001 200 5000
002 100 1000
002 100 1020
002 100 1050
002 150 1000
002 150 1020
002 150 1050
002 300 1000
002 300 1020
002 300 1050
003 150 300
003 150 5000
003 200 300
003 200 5000
004 50 400
004 100 400
005 150 150
005 150 200
005 150 250
005 250 150
005 250 200
005 250 250
005 400 150
005 400 200
005 400 250
SUM ตาม RECBILLNO
Code (SQL)
SELECT RECBILLNO , SUM(AMT) AS AMOUNT
FROM (SELECT A.RECBILLNO , B.QTY ,A.PRICE , (B.QTY *A.PRICE) AS AMT
FROM NY1 A INNER JOIN NY2 B ON A.RECBILLNO = B.RECBILLNO
) AS TB1
GROUP BY RECBILLNO
ORDER BY RECBILLNO
ได้ตามนี้ครับ
RECBILLNO AMOUNT
001 1000000
002 1688500
003 1855000
004 60000
005 480000
|
ประวัติการแก้ไข 2016-12-21 14:15:13
 |
 |
 |
 |
Date :
2016-12-21 14:05:33 |
By :
jaypang |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตอบความคิดเห็นที่ : 5 เขียนโดย : dRufFy เมื่อวันที่ 2016-12-21 15:45:21
รายละเอียดของการตอบ ::
ผมว่ามันแปลกๆ นะครับ ผมยังเขียนไม่เก่ง แต่ก็อยากช่วยครับ
ลองอันนี้ดูครับ
Code (SQL)
select y.recbillno,y.price,x.qty
from
(
select ROW_NUMBER() over ( partition BY recbillno order by recbillno) as no ,recbillno , price
from ny1
) as y
inner join
(
select ROW_NUMBER() over ( partition BY recbillno order by recbillno) as no ,recbillno , qty
from ny2
) as x on x.no = y.no and x.recbillno = y.recbillno
ข้อมูลจะได้แบบนี้ครับ
recbillno price qty
001 5000 200
002 1000 300
002 1050 150
002 1020 100
003 5000 200
003 300 150
004 400 50
005 200 150
005 150 250
005 250 400
|
 |
 |
 |
 |
Date :
2016-12-22 09:41:13 |
By :
jaypang |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

มี 2 ตาราง T1 T2
ซง T1 กับ T2 จะมีเลขที่บิลเหมือนกัน และเท่ากัน แต่ผมต้องการดง T2 Qty และ Lot มาเชื่อมต่อกับ T1 ดังรูปตัวอย่างที่ระบุไว้สีเหลืองครับ
|
 |
 |
 |
 |
Date :
2016-12-22 14:29:28 |
By :
dRufFy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|