Sql Query Help to find values?
Hi!
i have a table structure like this...
you can see the image here.
http://postimg.org/image/3k5nvkvn5/
i which i need to find some values.
Example: i need to find all column "District" values where value=46
then in that case you can see in above image that row 1 to 4 has to fetched because these columns contains value between 45-52, also in row 5 where value is 46,47 the also it has to be fetched, here i have to kind of structure to be used in table one
is comma separated and another one is comma and dash separated value, so how can i find these values in table. so how can achieve this using query, Any help would be triplicated.
Ah this is not correct way to store data in table
If you store like this you've to do lots of manipulations before values can be used in filter
So as per above you would require something like this
;With Numbers(N)
AS
SELECT 1
UNION ALL
SELECT 1
UNION ALL
SELECT 1
UNION ALL
SELECT 1
UNION ALL
SELECT 1
UNION ALL
SELECT 1
Num_Matrix(N)
AS
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT 1))
FROM Numbers n1
CROSS JOIN Numbers n2
CROSS JOIN Numbers n3
CROSS JOIN Numbers n4
CROSS JOIN Numbers n5
CROSS JOIN Numbers n6
CROSS JOIN Numbers n7
CROSS JOIN Numbers n8
SELECT DISTINCT t.po_city_st_zip
FROM
SELECT LEFT(f.Val,CHARINDEX('-',f.Val+'-')-1) AS StartVal,
STUFF(f.Val,1,CHARINDEX('-',f.Val+'-'),'') AS EndVal,
t.*
FROM YourTable t
CROSS APPLY do.ParseValues(t.District,',')f
)m
INNER JOIN Num_Matrix n
ON n.N BETWEEN m.StartVal AND m.EndVal
WHERE n.N = <your Value>
See ParseValues UDF here
http://visakhm.blogspot.ae/2010/02/parsing-delimited-string.html
Please Mark This As Answer if it solved your issue
Please Vote This As Helpful if it helps to solve your issue
Visakh
My Wiki User Page
My MSDN Page
My Personal Blog
My Facebook Page
Similar Messages
-
SQL Query Help - Is this possible or impossible????
Hi guys,
I need help with an SQL query that I'm trying to develop. It's very easy to explain but when trying to implement it, I'm struggling to achieve the results that I want.....
For example,
I have 2 tables
The first table is:
1) COMPANY create table company (manufacturer varchar2(25),
date_established date,
location varchar2(25) );My sample test date is:
insert into company values ('Ford', 1902, 'USA');
insert into company values ('BMW', 1910, 'Germany');
insert into company values ('Tata', 1922, 'India');The second table is:
2) MODELS create table models (manufacturer varchar(25),
model varchar2(25),
price number(10),
year date,
current_production_status varchar2(1) ) ;My sample test data is:
insert into models values ('Ford', 'Mondeo', 10000, 2010, 0);
insert into models values ('Ford', 'Galaxy', 12000, 2008, 0);
insert into models values ('Ford', 'Escort', 10000, 1992, 1);
insert into models values ('BMW', '318', 17500, 2010, 0);
insert into models values ('BMW', '535d', 32000, 2006, 0);
insert into models values ('BMW', 'Z4', 10000, 1992, 0);
insert into models values ('Tata', 'Safari', 4000, 1999, 0);
insert into models values ('Tata', 'Sumo', 5500, 1996, 1);
insert into models values ('Tata', 'Maruti', 3500, 1998, 0);And this is my query:
SELECT
com.manufacturer,
com.date_established,
com.location,
DECODE(nvl(mod.current_production_status, '0'), '0', '-', mod.model),
DECODE(nvl(mod.current_production_status, '0'), '0', '-', mod.price),
DECODE(nvl(mod.current_production_status, '0'), '0', '-', mod.year),
mod.current_production_status
FROM
company com,
models mod
WHERE
mod.manufacturer = com.manufacturer
and com.manufacturer IN ('Ford', 'BMW', 'Tata')
and mod.current_production_status IN (1,0)
ORDER BY
mod.current_production_status DESCWhat I want the query to output is this:
com.manufacturer com.date_established com.location mod.model mod.price mod.year mod.current_production_status
Ford 1902 USA Escort 10000 1992 1
BMW 1910 Germany - - - 0
Tata 1922 India Sumo 5500 1998 1If current_production_status is 1 it means this particular model has been discontinued
If current_production_status is 0 it means the manufacturer does not have any discontinued models and all are in procuction.
The rule is only one record per manufacturer is allowed to have a current_production_status of 1 (so only one model from the selection the manufactuer offers is allowed to be discontinued).
So the query should output the one row where current_production_status is 1 for each manufacturer.
If for a given manufacturer there are no discontinued models and all have a current_production_status of 0 then ouput a SINGLE row that only includes the data from the COMPANY table (as above). The rest of the columns from the MODELS table should be populated with a '-' (hyphen).
My query as it is above will output all the records where current status is 1 or 0 like this
com.manufacturer com.date_established com.location mod.model mod.price mod.year mod.current_production_status
Ford 1902 USA Escort 10000 1992 1
Tata 1922 India Sumo 5500 1998 1
Ford 1902 USA - - - 0
Ford 1902 USA - - - 0
BMW 1910 Germany - - - 0
BMW 1910 Germany - - - 0
BMW 1910 Germany - - - 0
Tata 1922 India - - - 0
Tata 1922 India - - - 0However this is not what I want.
Any ideas how I can achieve the result I need?
Thanks!
P.S. Database version is '10.2.0.1.0'Hi Vishnu,
Karthiks query helped...
But this is the problem I am facing...
SELECT
com.manufacturer,
com.date_established,
com.location,
DECODE(nvl(mod.current_production_status, '0'), '0', '-', mod.model),
DECODE(nvl(mod.current_production_status, '0'), '0', '-', mod.price),
DECODE(nvl(mod.current_production_status, '0'), '0', '-', mod.year),
mod.current_production_status
FROM
company com,
models mod
WHERE
mod.manufacturer = com.manufacturer
and com.manufacturer = 'Ford'
and mod.current_production_status IN (1,0)
ORDER BY
mod.current_production_status DESCThe value of:
and com.manufacturer = 'Ford'will be dependent on front end user input....
When I run the query above I get all the rows where current_production_status is either 1 or 0.
I only require the rows where current_production_status is 1.
So if I amend it to look like this:
and mod.current_production_status = 1This works....
BUT if a user now passes in more than one manufacturer EG:
and com.manufacturer IN ('Ford', 'BMW')The query will only return the one row for Ford where current_production_status is 1. However because BMW has no models where current_production_status is 1 (all 3 are 0), I still want this to be output - as one row....
So like this:
com.manufacturer com.date_established com.location mod.model mod.price mod.year mod.current_production_status
Ford 1902 USA Escort 10000 1992 1
BMW 1910 Germany - - - 0So (hopefully you understand), I want both cases to be catered for.....whether a user enters one manufacturer or more than one...
Thanks you so much!
This is really driving me insane :-( -
SQL Query constructing for searching values in Tables single Column
I have Table USER_SERVICES with 2 Columns USER_NAME, Services. Please find below sample data on USER_SERVICES Table.
A user can be assigned with multiple services(service1, service2 etc.,). So we store data as below :
USER_NAME Services
user1 service1
user1 service2
user1 service3
user2 service1
user2 service2
user3 service3
user4 service4
I need to frame a SQL Query to 'select users assigned with Service A and Service B and Service n'.
Note: 'And' condition is used when Searching for multiple services.
Example: The SQL Query has to dynamically handle condition if i give Single Service, multiple Services(service1 and service2 e.t.c,)
If i say select users assigned with service1 and service2, from the above Table, result should be user1 and user2
If i say select users assigned with service1 and service2 and service3, from the above Table, result should be user1
If i say select users assigned with service4 from the above table, result should be user4
If i say select users assigned with service1 from the above table, result should be user2,user1
If i say select users assigned with service1 and service2 from the above table, result should be user2,user1
How do i construct the SQL Query. Any help will be appreciated.
Thanks,
Sathish
Alternate email: [email protected]How it will be stored? In a string or a table or a collection type?
If you have it in a table you can do like this.
with t
as
select 'user1' user_name, 'service1' services from dual union all
select 'user1', 'service2' from dual union all
select 'user1', 'service3' from dual union all
select 'user2', 'service1' from dual union all
select 'user2', 'service2' from dual union all
select 'user3', 'service3' from dual union all
select 'user4', 'service4' from dual
t1 as
select 'service1' services from dual union all
select 'service2' from dual
select distinct user_name
from (
select t.user_name, t.services, t1.services, count(t1.services) over(partition by t.user_name) cnt, t1.cnt cnt_1
from t
left join (select t1.*, count(*) over() cnt from t1) t1 on t1.services = t.services
where cnt = cnt_1 -
LOV SQL query dependent on column value
Hi Gurus,
I have a tabular form, a column of which I would like to display as a dropdown whose list of values is a SQL query containing a where clause on another column value.
For example, say the tabular form displays questions, and that the answers to the different questions are to be picked in list of values that are different for each question. I have tried the following queries for the dropdown list of values:
1- select value_text, value_text from list_of_values_table where question_id=#QUESTION_ID#
2- select value_text, value_text from list_of_values_table where question_id=:QUESTION_ID
3- select value_text, value_text from list_of_values_table where question_id=&QUESTION_ID.
In the 3 cases, I get an error when I run the application saying that the SQL statement is incorrect.
Any ideas?
Thanks in advance,
GuillauemAnton,
Yes, I am creating a region based on a sql query. The query is the following:
select q.id quest_id, q.name, q.data_type_id, q.lov_flag, a.id answer_id, a.answer_text, a.org_id
from gwb_questions q left join gwb_answers a on q.id=a.question_id, gwb_answers ans right join gwb_orgs o on ans.org_id=o.id
where q.MODULE_ID=:P2_MODULE_ID and o.id=:P2_ORG_ID
Now, in the 'answer_text' column, I would like to display a dropdown containing values that come from a separate table and that depend on the value of the quest_id column. So in the Column Attributes for 'answer_text', I selected Select List (query based LOV) for the Tabular Form Element, and I entered the query mentioned before in the List of Values section (select value_text, value_text from list_of_values_table lov where lov.question_id= ?).
I am not using any API.
Does that make sense?
Thanks for your help,
Guillaume -
I'm having trouble with an SQL query. I've created a simple logon page wherein a user will enter their user name and password. The program will look in an Access database for the user name, sort it by Date/Time modified, and check to see if their password matches the most recent password. Unfortunately, the query returns no results. I'm absolutely certain that I'm doing the query correctly (I've imported it directly from my old VB6 code). Something simple is eluding me. Any help would be appreciated.
private void LogOn() {
//make sure that the user name/password is valid, then load the main menu
try {
//open the database connection
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:LawOffice2000", "", "");
Statement select = con.createStatement();
String strTemp = "Select * From EMPLOYEES Where INITIALS = '" + txtUserName.getText() + "' Order By DATE Desc, TIME Desc";
ResultSet result = select.executeQuery(strTemp);
while(result.next()) {
if (txtPassword.getPassword().toString() == result.getString("Password")) {
MenuMain.main();
else {
System.out.println("Password Bad");
System.out.println(txtUserName.getText());
System.out.println(result.getString("Password"));
break; //exit loop
//close the connection
con.close(); }
catch (Exception e) {
System.out.println("LawOfficeSuite_LogOn: " + e);
return; }
}The problem is here: "txtPassword.getPassword().toString() == result.getString("Password"))"
Don't confuse String's equals() method with the equality operator '=='. The == operator checks that two references refer to the same object. If you want to compare the contents of Strings (whether two strings contain the same characters), use equals(), e.g. if (str1.equals(str2))...
Example:String s1 = "foo";
String s2 = new String("foo");
System.out.println("s1 == s2: " + (s1 == s2)); // false
System.out.println("s1.equals(s2): " + (s1.equals(s2))); // trueFor more information, check out Comparison operators: equals() versus == -
Need of SQL query in selecting distinct values from two tables
hi,
I need a query for selecting distinct values from two tables with one condition.
for eg:
there are two tables a & b.
in table a there are values like age,sex,name,empno and in table b valuses are such as age,salary,DOJ,empno.
here what i need is with the help of empno as unique field,i need to select distinct values from two tables (ie) except age.
can anybody please help me.
Thanks in advance,
RatheeshNot sure what you mean either, but perhaps this will start a dialog:
SELECT DISTINCT a.empno,
a.name,
a.sex,
b.salary,
b.doj
FROM a,
b
WHERE a.empno = b.empno;Greg -
How to check the sql:query is return null value
I have use :
<sql:query var="sql1" dataSource="${db}">
select col_name from table_name
where a=<c:out value="${row.test1}"/>
and b='<c:out value="${row.test2}"/>'
</sql:query>
So, how can I check this statement return null value which is no record within this table?The Result should never be null but can be empty. You can check if the Result is empty using an if tag and checking the rowCount property:
<sql:query var="books"
sql="select * from PUBLIC.books where id = ?" >
<sql:param value="${bookId}" />
</sql:query>
<c:if test="${books.rowCount > 0}">
</c:if>http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSTL7.html#wp84217
Look for query Tag Result Interface -
Hi,
I require help for sql query. The query will be like
"SELECT * FROM XYZ WHERE TEXT = 'h*s' "
and the results will be come like
“his”
“homes”
“houses”
“horses”,
“horticulturalists”
“herbaceous”.
Thanks,
KapilHello,
SELECT *
FROM XYZ
WHERE TEXT LIKE ('h%s');Regards
Edited by: OrionNet on Feb 2, 2009 12:33 AM -
Sql query - Selecting last recorded values for each date in specified period
Hello,
Can someone please help me with my problem.
I'm trying to get last recorded balance for each day for specific box (1 or 2) in specified period of days from ms access database using ADOTool.
I'm trying to get that information with SQL query but so far unsuccessfully...
My table looks like this:
Table name: TestTable
Date Time Location Box Balance
20.10.2014. 06:00:00 1 1 345
20.10.2014. 12:00:00 1 1 7356
20.10.2014. 18:45:00 1 1 5678
20.10.2014. 23:54:00 1 1 9845
20.10.2014. 06:00:02 1 2 35
20.10.2014. 12:00:04 1 2 756
20.10.2014. 18:45:06 1 2 578
20.10.2014. 23:54:10 1 2 845
21.10.2014. 06:00:00 1 1 34
21.10.2014. 12:05:03 1 1 5789
21.10.2014. 15:00:34 1 1 1237
21.10.2014. 06:00:00 1 2 374
21.10.2014. 12:05:03 1 2 54789
21.10.2014. 15:00:34 1 2 13237
22.10.2014. 06:00:00 1 1 8562
22.10.2014. 10:00:00 1 1 1234
22.10.2014. 17:03:45 1 1 3415
22.10.2014. 22:00:00 1 1 6742
22.10.2014. 06:00:05 1 2 562
22.10.2014. 10:00:16 1 2 123
22.10.2014. 17:03:50 1 2 415
22.10.2014. 22:00:10 1 2 642
23.10.2014. 06:00:00 1 1 9876
23.10.2014. 09:13:00 1 1 223
23.10.2014. 13:50:17 1 1 7768
23.10.2014. 19:47:40 1 1 3456
23.10.2014. 21:30:00 1 1 789
23.10.2014. 23:57:12 1 1 25
23.10.2014. 06:00:07 1 2 976
23.10.2014. 09:13:45 1 2 223
23.10.2014. 13:50:40 1 2 78
23.10.2014. 19:47:55 1 2 346
23.10.2014. 21:30:03 1 2 89
23.10.2014. 23:57:18 1 2 25
24.10.2014. 06:00:55 1 1 346
24.10.2014. 12:30:22 1 1 8329
24.10.2014. 23:50:19 1 1 2225
24.10.2014. 06:01:00 1 2 3546
24.10.2014. 12:30:26 1 2 89
24.10.2014. 23:51:10 1 2 25
Let's say the period is 21.10.2014. - 23.10.2014. and I want to get last recorded balance for box 1. for each day. The result should look like this:
Date Time Location Box Balance
21.10.2014. 15:00:34 1 1 1237
22.10.2014. 22:00:00 1 1 6742
23.10.2014. 23:57:12 1 1 25
So far I've managed to write a query that gives me balance for ONLY ONE date (date with highest time in whole table), but I need balance for EVERY date in specific period.
My incorrect code (didn't manage to implement "BETWEEN" for dates...):
SELECT TestTable.[Date], TestTable.[Time], TestTable.[Location], TestTable.[Box], TestTable.[Balance]
FROM TestTable
WHERE Time=(SELECT MAX(Time)
FROM TestTable
WHERE Location=1 AND Box=1 );
Tnx!
Solved!
Go to Solution.For loop
following query keep day (here 24 in below query) Variable from ( 1 to 28-29/30/31 as per month)
SELECT TOP 1 TestTable.[Date], TestTable.[Time], TestTable.[Location], TestTable.[Box], TestTable.[Balance]
FROM Test Table.
WHERE Time=(SELECT MAX(Time) FROM TestTable WHERE Location=1 AND Box=1 )
AND DATE = "2014-10-24";
PBP (CLAD)
Labview 6.1 - 2014
KUDOS ARE WELCOMED.
If your problem get solved then mark as solution. -
SQL query returns varchar - default value type!!!
On a field in my portal form there is a default value type of 'SQL query returns varchar', where can I put this sql to get a default value from a table?
Hi again
I have this code in 'additional pl/sql code' - '...before displaying the page'. But it comes up with an error when I run the form.
declare
prop_v varchar2(20);
group_v varchar2(3);
el1_v varchar2(3);
blk varchar2(10) := 'DEFAULT';
begin
prop_v := p_session.get_value_as_varchar2(p_block_name=>'DEFAULT', p_attribute_name => 'l_property_p');
group_v := p_session.get_value_as_varchar2(p_block_name=>'DEFAULT', p_attribute_name => 'l_group_p');
select element_code
into el1_v
from eh_risk_element_detail
where property_ref = prop_v
and group_code = group_v
and line_no = 1;
p_session.set_value(p_block_name => blk, p_attribute_name => 'L_ELEMENT1_P', p_value => el1_v);
end;
Rich -
SQL query to store float values in french culture.
Here is how my requirement goes..
I have an application where users can store float values into the SQL server. Here float values are period(.) based. I have now started supporting the users who use the french culture where the float values are Comma(,) based. Example: 13.75 is represented
as 13,75. Instead of making changes to my code i.e the way i am inserting/retrieving the date now, is there a way i can handle this requirement based on culture. Like, if I specify the culture, will I be able to insert float inputs as comma(,) based values
without disturbing my existing code?
Any help is appreciated
Thanks,
Chandrahas.
-Chandrahasis there a way i can handle this requirement based on culture.
Hello Chandrahas,
SQL Server don't store any culture info for numeric values; they are plain numeric.
It's part of the frontend to represent / accept values depending on the culture setting of the client.
Olaf Helper
[ Blog] [ Xing] [ MVP] -
Sql query - help reqd (new)
Hi,
I have follwing dataset
"herb with garden"
"garden without herb"
"herb with zbc"
"garden with pqr"
Now i want sql query like
select * from table where text1 = "herb and garden"
This should populate
herb with garden
garden without herb
And
select * from table where text1 = "herb or garden"
This should populate
"herb with garden"
"garden without herb"
"herb with zbc"
"garden with pqr"SQL> with t
2 as
3 (
4 select 'herb with garden' str from dual union all
5 select 'garden without herb' str from dual union all
6 select 'herb with zbc' str from dual union all
7 select 'garden with pqr' str from dual
8 )
9 select *
10 from t
11 where lower(str) like '%herb%'
12 and lower(str) like '%garden%'
13 /
STR
herb with garden
garden without herb
SQL> with t
2 as
3 (
4 select 'herb with garden' str from dual union all
5 select 'garden without herb' str from dual union all
6 select 'herb with zbc' str from dual union all
7 select 'garden with pqr' str from dual
8 )
9 select *
10 from t
11 where lower(str) like '%herb%'
12 or lower(str) like '%garden%'
13 /
STR
herb with garden
garden without herb
herb with zbc
garden with pqr -
hi guys
i have sample data as mentioned below... need to find the duplicate rows where cd=cd and dt1=dt1 and tm1 difference should be less than or equal to 4 hrs..
i can get the data with the query written below but my problem is that i am not allowed to use in-built sql server function... can you help me in writing the same without using in-built function...
CREATE TABLE #t (id INT,dt1 datetime, tm1 datetime,cd varchar(10))
INSERT INTO #t VALUES (101,'2013-04-24','1900-01-01 12:20:00.000','TC')
INSERT INTO #t VALUES (101,'2013-04-24','1900-01-01 12:30:00.000','TC')
INSERT INTO #t VALUES (101,'2013-08-02','1900-01-01 14:30:00.000','MN')
INSERT INTO #t VALUES (101,'2013-08-02','1900-01-01 15:07:00.000','MN')
INSERT INTO #t VALUES (101,'2013-07-06','1900-01-01 09:07:00.000','XY')
INSERT INTO #t VALUES (101,'2013-11-27','1900-01-01 09:50:00.000','LM')
INSERT INTO #t VALUES (101,'2013-07-06','1900-01-01 15:07:00.000','XY')
select * From #t
WITH MyCTE (rn,id, dt1, tm1, cd)
AS(
select row_number() over (partition by id ORDER BY dt1, tm1) rn,* from #t
select case when ((dt1 = lead_start_Date) and (ct <='4.0') and (base_cd = lead_cd)) then 'Duplicate_Req' else '' end dt123,* from
select abs(convert(decimal(5,1),datediff(MI,lead_Start_time,tm1)/60.00)) ct, * from
SELECT base.rn b_rn,LEAd.rn l_rn,BASE.id
,BASE.dt1
,BASE.tm1
,base.cd base_cd
,LEAD.dt1 LEAD_START_DATE
,LEAD.tm1 LEAD_START_TIME
,lead.cd lead_cd
--,DATEADD(dd,-1,LEAD.dt1) EXPECTED_END_DATE
FROM MyCTE BASE
LEFT JOIN MyCTE LEAD ON BASE.id = LEAD.id
AND BASE.rn = LEAD.rn+1
) b
)cif this code will not work for you then not sure if there are any other options
Converted the CTE into an actual temp table.
CTE and barebones T-SQL code are included in the script below.
CREATE TABLE #t (id INT,dt1 datetime, tm1 datetime,cd varchar(10))
INSERT INTO #t VALUES (101,'2013-04-24','1900-01-01 12:20:00.000','TC')
INSERT INTO #t VALUES (101,'2013-04-24','1900-01-01 12:30:00.000','TC')
INSERT INTO #t VALUES (101,'2013-08-02','1900-01-01 14:30:00.000','MN')
INSERT INTO #t VALUES (101,'2013-08-02','1900-01-01 15:07:00.000','MN')
INSERT INTO #t VALUES (101,'2013-07-06','1900-01-01 09:07:00.000','XY')
INSERT INTO #t VALUES (101,'2013-11-27','1900-01-01 09:50:00.000','LM')
INSERT INTO #t VALUES (101,'2013-07-06','1900-01-01 15:07:00.000','XY')
INSERT INTO #t VALUES (101,'2013-08-02','1900-01-01 15:07:00.000','MN')
select * From #t
;WITH MyCTE (rn,id, dt1, tm1, cd)
AS(
select row_number() over (partition by id ORDER BY dt1, tm1) rn,* from #t
select case when ((dt1 = lead_start_Date) and (ct <='4.0') and (base_cd = lead_cd)) then 'Duplicate_Req' else '' end dt123,* from
select abs(convert(decimal(5,1),datediff(MI,lead_Start_time,tm1)/60.00)) ct, * from
SELECT base.rn b_rn,LEAd.rn l_rn,BASE.id
,BASE.dt1
,BASE.tm1
,base.cd base_cd
,LEAD.dt1 LEAD_START_DATE
,LEAD.tm1 LEAD_START_TIME
,lead.cd lead_cd
--,DATEADD(dd,-1,LEAD.dt1) EXPECTED_END_DATE
FROM MyCTE BASE
LEFT JOIN MyCTE LEAD ON BASE.id = LEAD.id
AND BASE.rn = LEAD.rn+1
) b
)c
select * into #copy From #t order by id, cd, dt1, tm1
alter table #copy add seqno int identity(1,1)
select distinct y.id,y.cd,y.dt1,y.tm1,y.seqno,case when z.cd is not null then 'Duplicate_Req' else '' end dt123
from #copy y
left outer join
(select a.id,a.cd,a.dt1,a.tm1
From #copy a
left outer join #copy b
on a.id = b.id
and a.cd = b.cd
and a.dt1 = b.dt1
where a.seqno > b.seqno
and abs(datediff(MINUTE,b.tm1,a.tm1)) <= 240) z
on y.id = z.id
and y.cd = z.cd
and y.dt1 = z.dt1
and y.tm1 = z.tm1
order by y.dt1,y.tm1
drop table #copy
drop table #t -
Query help to find missing rows
Hi,
Create tableA (
columname varchar2;
Insert into tableA ('a3');
Insert into tableA ('dd');
Select * from tablename where column in ( a3, b12,c34, dd ); -- 4 Values provided
Need a query to return b12,c34 ie I have to find which records or not returning from a table for a given values.
Please help
Thanks
Arvy
Edited by: ARVY on Jun 19, 2012 11:10 AM
Edited by: ARVY on Jun 19, 2012 11:16 AMARVY wrote:
I am using Oracle 9i versionFollowing is query that should be compatible on 9i.
Please test it,since I am not able to do it due to unavailability of Oracle 9i with me.
with data as
select 'a,b,c,d' || ',' col from dual
isolated_data as
select trim(both ',' from (substr(col,
DECODE(level,
1, 1,
instr(col, ',', 1, level - 1) + 1
DECODE(level,
1, instr(col, ',', 1, level),
instr(col, ',', 1, level) - instr(col, ',', 1, level - 1)
) ))col1
from data
connect by level <= length(col) - length(replace(col, ','))
select a.col1
from isolated_data a
where a.col1 NOT IN (select col from test_Table);Regards,
P. -
Hello,
I need help with SQL... My database version is Oracle 10g Release 1.2.
I have two table with the exact same structure as follows...
create table t1(cust_id number(5), zone_number number(2), part_number varchar2(10))
create table t2(cust_id number(5), zone_number number(2), part_number varchar2(10))
I need a query that would give me two counts per pairs of customer between t1 and t2..
1.Count of part_number matches between the same zones in table 1 and table 2 for pairs of customers
for Customer 1 and 10 for zone 1 this total shoulb be 2 because between cust 1 and 10 for Zone 1 there are two part number matches A and B.
for Customer 1 and 10 for zone 2 this total shoulb be 0 because between cust 1 and 10 for Zone 2 there are no part number matches
for Customer 1 and 20 for zone 1 this total shoulb be 0 because between cust 1 and 20 for Zone 1 there are no part number matches
for Customer 1 and customer 20 zone 2 this total shoulb be 0 because between cust 1 and 20 for Zone 2 there is one part number matches , which is 'F'
for Customer 1 and customer 20 zone 3 this total shoulb be 0 because there is no zone 3 for Customer 1
same way
.. cust 2 and cust 10 Zone 1 counts and zone2 counts
.. for 2 and cust 20 zone 1, 2, and 3 counts
2. Total unique Part nmbers between the same zones for pairs of customers in table 1 and table2
for example
unique part numbers between cust 1 and 10 for zone 1 are A,B and C so the count should be 3
unique part numbers between cust 1 and 10 for zone 2 are B,F, D and E so the count should be 3
unique part numbers between cust 1 and 20 for zone 1 are A,B,C and G so the count should be 4
and so on so forth
insert into t1 values(1, 1, 'A')
insert into t1 values(1, 1, 'B')
insert into t1 values(1, 1, 'C')
insert into t1 values(1, 2, 'B')
insert into t1 values(1, 2, 'F')
insert into t1 values(1, 2, 'D')
insert into t1 values(1, 2, 'E')
insert into t1 values(2, 1, 'F')
insert into t1 values(2, 2, 'G')
insert into t1 values(2, 2, 'H')
insert into t2 values(10, 1, 'A')
insert into t2 values(10, 1, 'B')
insert into t2 values(10, 2, null)
insert into t2 values(20, 1, 'G')
insert into t2 values(20, 2, 'F')
insert into t2 values(20, 2, 'H')
insert into t2 values(20, 3, 'I')
insert into t2 values(20, 3, 'J')
My query result should be as follows...
cust1 cust2 zone pn_match_count total_unique_pn_count
1 10 1 2 3
1 10 2 0 4
1 20 1 0 4
1 20 2 1 5
1 20 3 0 2
2 10 1 0 3
2 10 2 0 2
2 20 1 0 2
2 20 2 1 3
2 20 3 0 2
I would really appreciate your help in writing this query.
Thanks in Advanceuser00 wrote:
No, that doesn't do it... I get no results with this query becuase the Cust_id in table 1 and table 2 are not the same.Yeah, I only realised that after I posted my query. I had interpreted pairs as "matching pairs" when what you meant was "permutations".
Cheers, APC
blog: http://radiofreetooting.blogspot.com
Maybe you are looking for
-
Error when creating BufferedImage with IndexColorModel from a byte array.
Hi, I have a 1-dimentional byte array and an IndexColorTable, and I can't figure out how to combine the 2 into an BufferedImage without unnecessary copying/reallocating of the image buffer. The color model I have is: int [] cmap = new int [numColors]
-
Why are there restricted procedures in forms?
I accept it as a fact that they exist. But it would be a lot less annoying to me when I am restricted by them to understand the reason for there existence. Would somebody please point me to some resource that explains the reason for the existence of
-
I can call other people on facetime and reach them but if they call me it doesn't ring. What do I change I my strings to get it to ring. If they call me first, I can see the call coming in and accept it but it doesn't ring.
-
I was getting out of my car and dropped my Zen Touch. It wasn't in the case at the time and landed straight on its face. The screen doesnt have a scratch on it but none of the buttons work except for the power and volume switches.
-
Audio disappears in Streamclip conversion to iMovie08
I have been using MPEG Streamclip 1.9.2 to convert a .MPG movie clip to a .AVI, so that it can be read into iMovie 08. The problem I'm having is that the audio disappears. Is there an explanation for this, and a work-around? Thanks.