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

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
MySql syntax problemer
Fra : Anders


Dato : 12-12-04 12:52

Hej gruppe.
Nu er den gal igen.
nedenstående virker fint.

SELECT orders.orders_id FROM orders LEFT JOIN order_done ON
orders.orders_id = order_done.orders_id WHERE order_done.orders_id IS NULL
AND
orders.orders_status = 4

Men nu skal jeg have den samlede pris fra de bestilte produkter for hver
ordre og have dem med i mit result set.
Nedenstående virker men jeg kan ikke finde ud af hvordan jeg får den samlede
sum med til hver orders_id i result settet.

SELECT SUM(products_price) FROM orders_products
WHERE orders_id = 149114

På forhånd TAK.

PS. det er lidt svært at forklare men håber det går

Anders Rademacher



 
 
Jens Gyldenkærne Cla~ (12-12-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 12-12-04 13:58

Anders skrev:

> Nedenstående virker men jeg kan ikke finde ud af hvordan jeg
> får den samlede sum med til hver orders_id i result settet.
>
> SELECT SUM(products_price) FROM orders_products
> WHERE orders_id = 149114

SELECT orders_id, SUM(products_price) As sumpris
FROM orders_products
GROUP BY orders_id
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Anders (12-12-2004)
Kommentar
Fra : Anders


Dato : 12-12-04 21:29

Det virkede fint tak

kunne godt være jeg skulle have fulgt bedre med i database timerne.
Jeg kan ikke rigtig finde ud af at få den passet ind i nedenstående sql
statment.


SELECT orders.orders_id,
orders.customers_telephone,
orders.customers_email_address,
orders.delivery_name,
orders.delivery_street_address,
orders.delivery_city,
orders.delivery_postcode,
orders.delivery_state,
orders.payment_method,
countries.countries_iso_code_2
FROM orders,countries
LEFT JOIN order_new_done
ON orders.orders_id=order_new_done.orders_id
WHERE order_new_done.orders_id IS NULL
AND orders.orders_status = 1
AND countries.countries_name = orders.delivery_country


Jeg har prøvet et utal af variasioner af nedenstående men får ik rigtig
noget resultat


SELECT orders.orders_id,
SUM(products_price) As sumpris,
orders.customers_telephone,
orders.customers_email_address,
orders.delivery_name,
orders.delivery_street_address,
orders.delivery_city,
orders.delivery_postcode,
orders.delivery_state,
orders.payment_method,
countries.countries_iso_code_2
FROM orders,countries,orders_products
LEFT JOIN order_new_done
ON orders.orders_id=order_new_done.orders_id
WHERE order_new_done.orders_id IS NULL
AND orders.orders_status = 1
AND countries.countries_name = orders.delivery_country
GROUP BY orders_id

Tak for hjælpen of forhåbentligt tolmodigheden
Anders Rademacher

"Jens Gyldenkærne Clausen" <jens@gyros.invalid> wrote in message
news:Xns95BD8E229CCC5jcdmfdk@gyrosmod.cybercity.dk...
> Anders skrev:
>
>> Nedenstående virker men jeg kan ikke finde ud af hvordan jeg
>> får den samlede sum med til hver orders_id i result settet.
>>
>> SELECT SUM(products_price) FROM orders_products
>> WHERE orders_id = 149114
>
> SELECT orders_id, SUM(products_price) As sumpris
> FROM orders_products
> GROUP BY orders_id
> --
> Jens Gyldenkærne Clausen
> Svar venligst under det du citerer, og citer kun det der er
> nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
> hvordan på http://usenet.dk/netikette/citatteknik.html



Stig Johansen (13-12-2004)
Kommentar
Fra : Stig Johansen


Dato : 13-12-04 07:39

Anders wrote:

> Det virkede fint tak
>
> kunne godt være jeg skulle have fulgt bedre med i database timerne.
> Jeg kan ikke rigtig finde ud af at få den passet ind i nedenstående sql
> statment.

[snip noget der tilsyneladende virker]

> Jeg har prøvet et utal af variasioner af nedenstående men får ik rigtig
> noget resultat
>
>
> SELECT orders.orders_id,
> SUM(products_price) As sumpris,
> orders.customers_telephone,
> orders.customers_email_address,
> orders.delivery_name,
> orders.delivery_street_address,
> orders.delivery_city,
> orders.delivery_postcode,
> orders.delivery_state,
> orders.payment_method,
> countries.countries_iso_code_2
> FROM orders,countries,orders_products
> LEFT JOIN order_new_done
> ON orders.orders_id=order_new_done.orders_id
> WHERE order_new_done.orders_id IS NULL
> AND orders.orders_status = 1
> AND countries.countries_name = orders.delivery_country

indsæt :
AND orders_products.orders_id = orders.orders_id

> GROUP BY orders_id
tilføj:
orders.customers_telephone,
orders.customers_email_address,
orders.delivery_name,
orders.delivery_street_address,
orders.delivery_city,
orders.delivery_postcode,
orders.delivery_state,
orders.payment_method,
countries.countries_iso_code_2

> Tak for hjælpen of forhåbentligt tolmodigheden

Velbekomme, dog med forbehold for, at jeg ikke bruger mySQL.


--
Med venlig hilsen
Stig Johansen

Jens Gyldenkærne Cla~ (12-12-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 12-12-04 22:52

Anders skrev:

> kunne godt være jeg skulle have fulgt bedre med i database
> timerne. Jeg kan ikke rigtig finde ud af at få den passet ind
> i nedenstående sql statment.

En vigtig ting at vide når man bruger grupperingsforespørgsler, er
at alle felter i feltlisten enten skal være aggregerede eller også
med i grupperingen.

Aggregering af et felt sker ved at bruge en aggregatfunktion som
sum, count, min, max eller avg på feltet. Det der afgør om et felt
er med i grupperingen eller ej, er hvorvidt feltet står i GROUP BY-
delsætningen.

Eksempel:

SELECT personID, fornavn, efternavn,
   count(logintid) as antallogin, max(logintid) as sidstelogin
FROM personer p
INNER JOIN logins l
ON p.personID = l.personID
GROUP BY personID, fornavn, efternavn

Selv om grupperingen egentlig fint kan laves alene på personID, så
er man nødt til at tage navnefelterne med hvis man også vil have
dem med i forespørgslen.

En anden måde at gøre det samme på er ved at lave et view der
finder de grupperede oplysninger og så bruge et join til at koble
flere ikke-grupperede oplysninger på. Jeg kan dog ikke huske om
MySQL understøtter views.


NB: Læs gerne min signatur.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Anders (13-12-2004)
Kommentar
Fra : Anders


Dato : 13-12-04 02:27

KL 02:24
Kan ikke finde ud af det.
Har du evt. en side hvor jeg kan læse om det så jeg kan finde en løsning?

Det værste er egne begrænsninger men det skal nok lykkes

Anders Rademacher



"Jens Gyldenkærne Clausen" <jens@gyros.invalid> wrote in message
news:Xns95BDE8969D35Ajcdmfdk@gyrosmod.cybercity.dk...
> Anders skrev:
>
>> kunne godt være jeg skulle have fulgt bedre med i database
>> timerne. Jeg kan ikke rigtig finde ud af at få den passet ind
>> i nedenstående sql statment.
>
> En vigtig ting at vide når man bruger grupperingsforespørgsler, er
> at alle felter i feltlisten enten skal være aggregerede eller også
> med i grupperingen.
>
> Aggregering af et felt sker ved at bruge en aggregatfunktion som
> sum, count, min, max eller avg på feltet. Det der afgør om et felt
> er med i grupperingen eller ej, er hvorvidt feltet står i GROUP BY-
> delsætningen.
>
> Eksempel:
>
> SELECT personID, fornavn, efternavn,
> count(logintid) as antallogin, max(logintid) as sidstelogin
> FROM personer p
> INNER JOIN logins l
> ON p.personID = l.personID
> GROUP BY personID, fornavn, efternavn
>
> Selv om grupperingen egentlig fint kan laves alene på personID, så
> er man nødt til at tage navnefelterne med hvis man også vil have
> dem med i forespørgslen.
>
> En anden måde at gøre det samme på er ved at lave et view der
> finder de grupperede oplysninger og så bruge et join til at koble
> flere ikke-grupperede oplysninger på. Jeg kan dog ikke huske om
> MySQL understøtter views.
>
>
> NB: Læs gerne min signatur.
> --
> Jens Gyldenkærne Clausen
> Svar venligst under det du citerer, og citer kun det der er
> nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
> hvordan på http://usenet.dk/netikette/citatteknik.html



Jens Gyldenkærne Cla~ (13-12-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 13-12-04 10:00

Anders skrev:

> Har du evt. en side hvor jeg kan læse om det så jeg kan finde
> en løsning?

Prøv at starte med siden her
<http://usenet.dk/netikette/citatteknik.html>

Hvis jeg fortsat skal hjælpe, må du prøve at følge de råd om
netikette du får.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Anders (13-12-2004)
Kommentar
Fra : Anders


Dato : 13-12-04 12:56


"Jens Gyldenkærne Clausen" <jens@gyros.invalid> wrote in message
> Hvis jeg fortsat skal hjælpe, må du prøve at følge de råd om
> netikette du får.

Mente enlig ikke jeg citerede men det gjore jeg så.

Tror lektien er lært

Anders Rademacher



Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408195
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste