2014-09-14 2 views
-2
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 

я хочу выберите счет не из моей таблицы, где trantype = «v»SQL запрос для выбора поля с условием

, но мне нужно привести в metioned ниже спасибо

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
+1

просьба описать логику, чтобы добраться до запрашиваемого результата. Это не очевидно. Например: почему отсутствует TRANTYPE C для Bill_NO 208? – Lmu92

+1

Так что же логика? – Mihai

ответ

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' (что не является частью вашего примера вывода). Но, поскольку вы не объяснили эту недостающую строку, сложно написать правильное решение.

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 
Смежные вопросы