/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
mange "select" i en SQL forespørgelse
Fra : Søren Augustesen


Dato : 20-12-01 11:42

Hej

Jeg skal have hentet data fra en SQL database over i et java program via
JDBC. Det er ikke noget problem at hente en enkelt "select"
forespørgelse over i en "executeQuery", men hvis jeg forsøger at have
mere end 1 "select" i foresprgelsen går det galt.
Kode ex.
executeQuery = ("select ITEM1 as item1 from database1; select ITEM2 as
item2 from database1";);

Problemet er at den ikke kan finde kolone "item2".

Jeg kan selvfølgelig lave to "executeQuery" men problemet er at jeg skal
have et varierende antal "select" mellem 1 og mange tusinde, alt
afhængige af hvad bruger vælger.

Er der en måde man kan få flere "select" i en executeQuery??

MVH
Søren Augustesen

 
 
Mikkel Bundgaard (20-12-2001)
Kommentar
Fra : Mikkel Bundgaard


Dato : 20-12-01 12:04

"Søren Augustesen" <august@kom.auc.dk> wrote in message
news:3C21C095.1F057DD9@kom.auc.dk...
> Hej
>
> Jeg skal have hentet data fra en SQL database over i et java
> program via JDBC. Det er ikke noget problem at hente en enkelt
> "select" forespørgelse over i en "executeQuery", men hvis jeg
> forsøger at have mere end 1 "select" i foresprgelsen går det galt.
> Kode ex.
> executeQuery = ("select ITEM1 as item1 from database1; select
> ITEM2 as item2 from database1";);
>
> Problemet er at den ikke kan finde kolone "item2".
>
> Jeg kan selvfølgelig lave to "executeQuery" men problemet er at
> jeg skal have et varierende antal "select" mellem 1 og mange
> tusinde, alt afhængige af hvad bruger vælger.
>
> Er der en måde man kan få flere "select" i en executeQuery??
>
> MVH
> Søren Augustesen
Hej Søren

Jeg kender ikke meget til JDBC, men jeg tror at fejlen ligger i din
forespørgsel. Når du skriver
SELECT ITEM2 AS item2
FROM database1

Så prøver den jo at udtage alle værdier, der findes i kolonnen item2
fra tabellen database1. Det du ønsker er nok noget ala (opdigtede
feltnavne og tabelnavne):
SELECT Product.ID, Product.name, Product.Number
FROM Product
WHERE Product.ID IN (2,4,6,7,234,65);

Håber du kan bruge det til noget
--
Mikkel Bundgaard
IT University of Copenhagen
http://officehelp.gone.dk
Codito, Ergo Sum



Søren Augustesen (20-12-2001)
Kommentar
Fra : Søren Augustesen


Dato : 20-12-01 12:16



Mikkel Bundgaard wrote:
>
> "Søren Augustesen" <august@kom.auc.dk> wrote in message
> news:3C21C095.1F057DD9@kom.auc.dk...
> > Hej
> >
> > Jeg skal have hentet data fra en SQL database over i et java
> > program via JDBC. Det er ikke noget problem at hente en enkelt
> > "select" forespørgelse over i en "executeQuery", men hvis jeg
> > forsøger at have mere end 1 "select" i foresprgelsen går det galt.
> > Kode ex.
> > executeQuery = ("select ITEM1 as item1 from database1; select
> > ITEM2 as item2 from database1";);
> >
> > Problemet er at den ikke kan finde kolone "item2".
> >
> > Jeg kan selvfølgelig lave to "executeQuery" men problemet er at
> > jeg skal have et varierende antal "select" mellem 1 og mange
> > tusinde, alt afhængige af hvad bruger vælger.
> >
> > Er der en måde man kan få flere "select" i en executeQuery??
> >
> > MVH
> > Søren Augustesen
> Hej Søren
>
> Jeg kender ikke meget til JDBC, men jeg tror at fejlen ligger i din
> forespørgsel. Når du skriver
> SELECT ITEM2 AS item2
> FROM database1
>
> Så prøver den jo at udtage alle værdier, der findes i kolonnen item2
> fra tabellen database1. Det du ønsker er nok noget ala (opdigtede
> feltnavne og tabelnavne):
> SELECT Product.ID, Product.name, Product.Number
> FROM Product
> WHERE Product.ID IN (2,4,6,7,234,65);
>
> Håber du kan bruge det til noget
> --
> Mikkel Bundgaard
> IT University of Copenhagen
> http://officehelp.gone.dk
> Codito, Ergo Sum

Ups, jeg fik hvis lavet en mindre fejl i mit eksemple. Jeg skal bruge
summen af hele kolonnen, altså:

"SELECT SUM(ITEM1) AS item1 FROM database1; SELECT SUM(ITEM2) AS item2
FROM database1;..........;";

MVH
Søren Augustesen

Mikkel Bundgaard (20-12-2001)
Kommentar
Fra : Mikkel Bundgaard


Dato : 20-12-01 12:58

"Søren Augustesen" <august@kom.auc.dk> wrote in message
news:3C21C887.5B4F8B4@kom.auc.dk...
<SNIP>
> Ups, jeg fik hvis lavet en mindre fejl i mit eksemple. Jeg skal
> bruge summen af hele kolonnen, altså:
>
> "SELECT SUM(ITEM1) AS item1 FROM database1; SELECT > SUM(ITEM2) AS
item2
> FROM database1;..........;";
>
> MVH
> Søren Augustesen
Hej Søren

Hvis du ønsker både at få summen af kolonnen ITEM1 og summen
af kolonnen ITEM2, så kan du bruge en UNION (hvis du ønsker
at resultatet skal returneres i flere poster). Noget ala.

SELECT SUM(ITEM1) AS item, "Item1" AS Description
FROM database1

UNION

SELECT SUM(ITEM2) AS item "Item2" AS Description
FROM database1
For hver kolonne.

Ellers hvis du ønske at bare få en post med en sum for hver kolonne
(nok min foretrukne, men det kommer jo an på hvad du laver )

SELECT SUM(ITEM1) AS item1, SUM(ITEM2) AS item2
FROM database1;

Håber du kan bruge det til noget
--
Mikkel Bundgaard
IT University of Copenhagen
http://officehelp.gone.dk
Codito, Ergo Sum



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste