Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
julioarriaga
Creator II
Creator II

How do I make the equivalent of QV's Preceding Load in SQL?

I will make some SQL experts cringe with this question, sorry ; I am self-taught and a rookie in QV and SQL.


So, I want to thank everybody in advance for the help.


I learned recently the use of QV's preceding loads. I need to do something similar to a QV's preceding load in a SQL query but I can't get my head around it.


This is the query I'm trying to do (code and image). Basically I'm trying to do the total count of records of a select grouped of records, but it marks me the following error in the Teradata SQL Assistant (image 2):

select count(*)

from (select Producto_ID, count(Producto_ID)

          from DWH.MF_PRODUCTO_ORGANIZACION

          where 1=1

          and EntidadLegal_ID='191'

          and Tipo_Producto_ID='1'

          group by Producto_ID

          having count(Producto_ID)>1

          );


(image 1)

Capture1.PNG

(image 2)

Capture2.PNG

1 Solution

Accepted Solutions
Peter_Cammaert
Partner - Champion III
Partner - Champion III

Sunny may be right. Your SQL engine appears to be complaining about the last ); lacking a name.

Try to name the result set of the inner select (Sunny called it p)

View solution in original post

7 Replies
devarasu07
Master II
Master II

Hi,

Try to keep only inner select query and remove outer select count(*) part (refer below screen highlighted one in yellow)

Capture.JPG

sunny_talwar

May be this

select count(*)

from (select Producto_ID, count(Producto_ID) Count

          from DWH.MF_PRODUCTO_ORGANIZACION

          where 1=1

          and EntidadLegal_ID='191'

          and Tipo_Producto_ID='1'

          group by Producto_ID

          having count(Producto_ID)>1

          ) p;

Peter_Cammaert
Partner - Champion III
Partner - Champion III

This is a nested SELECT.

If you omit the outer select count(*) from (...), does the inner SELECT work ok on your Teradata DB? Does it produce the expected output?

julioarriaga
Creator II
Creator II
Author

Hi, yes, it does :s

sunny_talwar

Did you try to look at the link I provided?

Peter_Cammaert
Partner - Champion III
Partner - Champion III

Sunny may be right. Your SQL engine appears to be complaining about the last ); lacking a name.

Try to name the result set of the inner select (Sunny called it p)