BILL_NO COUTER TRANTYPE BARCODE DES TRANAMT 164 1 V 21021 ALOKOZAY TISSUE 150S (3.50) 164 1 s 21021 210521 CABAGE 5.00 164 1 C CASH CASH 1.50 208 2 V 120110 NATCO ORANGE MARMALA (6.75) 208 2 S 120110 NATCO ORANGE MARMALA 6.75 208 2 C CASH CASH - 164 3 S 5404568 FRESH FISH 18.00 164 3 S 5406464 ARYAA IDLY/DOSA MIX 5.00 164 3 S 654954 DETTOL SENSITIVE 125 7.00 164 3 C CASH CASH 30.00
我希望从我的表中选择bill no,其中trantype =' v'
但我需要下面提到的结果谢谢
BILL_NO COUTER TRANTYPE BARCODE DES TRANAMT 164 1 V 21021 ALOKOZAY TISSUE 150S (3.50) 164 1 s 21021 210521 CABAGE 5.00 164 1 C CASH CASH 1.50 208 2 V 120110 NATCO ORANGE MARMALA (6.75) 208 2 S 120110 NATCO ORANGE MARMALA 6.75
答案 0 :(得分:1)
这对我来说并不完全清楚,但我认为你想要这样的事情:
select t1.*
from the_table t1
where exists (select 42
from the_table t2
where t2.bill_no = t1.bill_no
and t2.trantype = 'V'
and t2.couter = t1.couter);
这也会返回bill_no = 208
和trantype = 'C'
(这不是示例输出的一部分)。但是,由于你没有解释那个缺失的行,所以很难写出一个合适的解决方案。
答案 1 :(得分:0)
假设Bill_no 208缺少的行只是一个拼写错误,以下解决方案可能有所帮助:
WITH cte AS
(
SELECT BILL_NO, COUNTER
FROM YourTable WHERE TRANTYPE ='V'
)
SELECT yt.*
FROM YourTable yt
INNER JOIN cte ON yt.BILL_NO = cte.BILL_NO AND yt.COUNTER=cte.COUNTER